Как отсортировать массив по определенному ключу? - PullRequest
0 голосов
/ 13 апреля 2010

У меня есть массив, как показано ниже.

$array[0]['keyword']  = 'cricket ';
$array[0]['noofhits'] = '26';

$array[1]['keyword']  = 'food  ';
$array[1]['noofhits'] = '17';

$array[2]['keyword']  = 'mypax';
$array[2]['noofhits'] = '22';

$array[3]['keyword']  = 'next';
$array[3]['noofhits'] = '22';

$array[4]['keyword']  = 'nextbutton';
$array[4]['noofhits'] = '22';

$array[5]['keyword']  = 'picture';
$array[5]['noofhits'] = '18';

Я хочу отсортировать массив, используя noofhits. Как я могу сделать? Заранее спасибо за ваш совет.

Соори за предыдущий. Спасибо за ваши ответы.

1 Ответ

9 голосов
/ 13 апреля 2010

Используйте usort с пользовательской функцией сравнения:

function cmp($a, $b) {
    return $a['noofhits'] - $b['noofhits'];
}
usort($array, 'cmp');

usort ожидает, что функция сравнения выдаст три разных значения:

  • 0, если a и b равны
  • целое число меньше 0, если a предшествует b
  • целое число больше 0, если b предшествует a

Таким образом, мы можем просто вычесть значение b из a . Если a больше значения b , вычитание дает положительное целое число; если значение a равно значению b , оно возвращает 0; и если значение a меньше значения b , это дает отрицательное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...