我猜我们希望根据我们的两个键对数组进行双重排序。然后,我们将我们的数组定义为$arr,并在我们想要的键上定义array_multisort:
array_multisort(array_column($arr, 'count'), SORT_DESC, array_column($arr, 'id'), SORT_DESC, $arr);
如果我们只对count进行排序,我们将删除id:
array_multisort(array_column($arr, 'count'), SORT_DESC, $arr);
测试 1
$arr = [
"0" =>
[
"id" => 65, "count" => 2,
],
"1" =>
[
"id" => 67, "count" => 500,
],
"2" =>
[
"id" => 61, "count" => 225,
],
"3" =>
[
"id" => 58, "count" => 2,
],
];
array_multisort(array_column($arr, 'count'), SORT_DESC, array_column($arr, 'id'), SORT_DESC, $arr);
var_dump($arr);
输出 1
array(4) {
[0]=>
array(2) {
["id"]=>
int(67)
["count"]=>
int(500)
}
[1]=>
array(2) {
["id"]=>
int(61)
["count"]=>
int(225)
}
[2]=>
array(2) {
["id"]=>
int(65)
["count"]=>
int(2)
}
[3]=>
array(2) {
["id"]=>
int(58)
["count"]=>
int(2)
}
}
如果我们只想对 count 进行排序,这可能会起作用:
测试 1
$arr = [
"0" =>
[
"id" => 65, "count" => 2,
],
"1" =>
[
"id" => 67, "count" => 500,
],
"2" =>
[
"id" => 61, "count" => 225,
],
"3" =>
[
"id" => 58, "count" => 2,
],
];
array_multisort(array_column($arr, 'count'), SORT_DESC, $arr);
var_dump($arr);
输出 2
array(4) {
[0]=>
array(2) {
["id"]=>
int(67)
["count"]=>
int(500)
}
[1]=>
array(2) {
["id"]=>
int(61)
["count"]=>
int(225)
}
[2]=>
array(2) {
["id"]=>
int(58)
["count"]=>
int(2)
}
[3]=>
array(2) {
["id"]=>
int(65)
["count"]=>
int(2)
}
}