php – 按不是第一个维度的数值对多维数组进行排序

我正在为我正在构建的论坛程序创建搜索功能.有一次,我有一个名为searchResults的数组,它是一个数字,包含’score’作为其维度之一(其他是’timeStarted’,’authorUID’和’TID’)

所以,这个数组现在处于混乱状态,我需要将它组织到$searchResults [1]将是最高’得分’,[2]将是第二高等等.我在php.net上查看了array_multisort但它在如何运作方面迅速迷失.那么我如何按照数字顺序(重新排列键)对$searchResults进行排序,以另一个维度’sort’的降序作为排序机制降序?确实没有任何代码可以使用它,但如果你需要一个阵列外观的布局,你可以去:

$searchResults:
   [1] - ['timeStarted']
         ['authorUID']
         ['score']   <- Need to sort first dimension by this value descending
         ['TID']
   etc.

谢谢你的帮助.

解决方法:

usort 允许按任何指定的比较函数进行排序

$cmp = function($a,$b) {return $b['score'] - $a['score'];};
usort($searchResults, $cmp);

在这种情况下,$cmp是一个函数,它根据[‘score’]的值比较$searchResults的两个元素$a和$b.如果$a [‘得分’]更大,则$cmp返回0,如果$b [‘得分’]更大,则返回正数val.它通常是相反的方式,但需要降序排序.

上一篇:如何在Pygame中获得监视器的分辨率?


下一篇:Android:有没有办法让fill_parent不缩小以适合父母的父母?