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

svk*_*svk 0 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';
Run Code Online (Sandbox Code Playgroud)

我想使用noofhits对数组进行排序.我能怎么做?预先感谢您的建议.

上一个的Soory.Thanks你的答案.

Gum*_*mbo 9

使用usort带有自定义比较函数:

function cmp($a, $b) {
    return $a['noofhits'] - $b['noofhits'];
}
usort($array, 'cmp');
Run Code Online (Sandbox Code Playgroud)

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

  • 如果ab相等,则为0
  • 如果a先于b,则小于0的整数
  • 大于0的整数,如果b之前一个

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