示例数组:
$ratings[] = array("8.25", "7", "john");
$ratings[] = array("8", "7", "kent");
$ratings[] = array("9", "7", "broman");
$ratings[] = array("9", "9", "yodude");
$ratings[] = array("10", "4", "anotherman");
我需要按第一个值降序排序此数组,如果第一个值相等,则需要降序第二个值。
有序数组应如下所示:
$ratings[] = array("10", "4", "anotherman");
$ratings[] = array("9", "9", "yodude");
$ratings[] = array("9", "7", "broman");
$ratings[] = array("8.25", "7", "john");
$ratings[] = array("8", "7", "kent");
你会怎么做呢?我猜测有一种更好的方法,而不是两次循环。
答案 0 :(得分:0)
好的,uasort
是要走的路。
这就是我解决它的方法:
uasort($ratings, function ($a, $b) {
if ($a[0] == $b[0]) {
if ($a[1] == $b[1]) {
return 0;
}
return $a[1] > $b[1] ? -1 : 1;
}
return ($a > $b) ? -1 : 1;
});
有些人认为使用array_multisort()