当数组为空时,PHP USort会发出空警告

时间:2015-05-11 13:04:02

标签: php null usort

    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为数组,在

中给出null

如何测试数组是否为空并且只是在到达usort行之前返回null结果?

谢谢你!

2 个答案:

答案 0 :(得分:2)

如果usort为空,请在使用$array之前进行检查。

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

答案 1 :(得分:0)

添加对empty数据的检查 -

if (!empty($array)) {
   // process data
}