Я предполагаю, что мы хотим дважды отсортировать наш массив на основе наших двух ключей. Затем мы определяем наш массив как $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)
}
}