2015-05-11 58 views
0
function sort_multi_array($array, $key) 
{ 
    if (is_null($array)) return 0; 
    $keys = array(); 
    for ($i=1;$i<func_num_args();$i++) { 
    $keys[$i-1] = func_get_arg($i); 
    } 

    // create a custom search function to pass to usort 
    $func = function ($a, $b) use ($keys) { 
    for ($i=0;$i<count($keys);$i++) { 
     if ($a[$keys[$i]] != $b[$keys[$i]]) { 
     return ($a[$keys[$i]] > $b[$keys[$i]]) ? -1 : 1; 
     } 
    } 
    return 0; 
    }; 

    usort($array, $func); 

    return $array; 
} 

然而,當它到達終點即警告沒有更多的條目我建立一個簡單的搜索查詢:usort()預計參數1是陣列,在PHP USort給空警告當數組爲空

給出空

如何測試數組是否爲空,並在到達usort線之前返回空結果?

謝謝!

+0

但不能爲空,對不對? - > if(is_null($ array))返回0; – pabgaran

回答

1

使用前檢查usort如果$array爲空或不是。

if ($array !== NULL) { 
    usort($array, $func); 
} 
+0

謝謝你的工作! – Viktor

+0

@Viktor:'null given' ...如果'!== NULL'不起作用,請嘗試'!empty'或'count($ array)> 0'。 – panther

0

添加一張支票empty數據 -

if (!empty($array)) { 
    // process data 
} 
相關問題