2015-05-11 1 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; 
} 

Я строю простой поисковый запрос, однако, когда он достигает конца т.е. не больше записей в Warning: usort() ожидает параметр 1, чтобы быть массивом, нуль приведены вPHP USort дает нулевое предупреждение, если массив пуст

Как проверить, нет ли массива пустым и просто вернуть нулевой результат, прежде чем он достигнет строки usort?

спасибо!

+0

Но не может быть пустым, верно? -> if (is_null ($ array)) return 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 
}