2015-05-11 17 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 
} 
相关问题