如何通过某些特定键对数组进行排序?

时间:2010-04-13 07:18:18

标签: php arrays sorting

我的数组如下所示。

$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 个答案:

答案 0 :(得分:9)

usort与自定义比较功能结合使用:

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

usort期望比较函数返回三个不同的值:

  • 0如果 a b 相等
  • 小于0的整数,如果 a 位于 b 之前
  • 如果 b 位于 a 之前,则
  • 大于0的整数

因此我们可以简单地从 a 中减去 b 的值。如果 a 的值大于 b 的值,则减法产生正整数;如果 a 的值等于 b 的值,则产生0;如果 a 的值小于 b 的值,则会产生负值。