У меня массив выглядит как показано ниже.
$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. Как я могу сделать? Спасибо за ваш совет.
Сори для предыдущего. Спасибо за ваши ответы.
Используйте usort
с пользовательской функцией сравнения:
function cmp($a, $b) { return $a['noofhits'] - $b['noofhits']; } usort($array, 'cmp');
usort
ожидает, что функция сравнения вернет три разных значения:
Поэтому мы можем просто вычесть значение b из a . Если значение s больше значения b , вычитание дает положительное целое число; если значение s равно значению b , оно дает 0; и если значение s меньше значения b , оно дает отрицательное значение.