我的数组是
$array = [
1 => 0
2 => 0
3 => 0
4 => 0
5 => 0
6 => 0
7 => 2
8 => 0
9 => 0
10 => 1
11 => 0
12 => 1
];
因此,我希望它成为
$array = [
10 => 1
11 => 0
12 => 1
1 => 0
2 => 0
3 => 0
4 => 0
5 => 0
6 => 0
7 => 2
8 => 0
9 => 0
];
我现在的逻辑是
$sorted = collect($array)
->sortBy(function ($count, $month) {
return $month <= 9;
});
但是结果不是我所期望的:(
基本上我希望上一个索引是当前月份,依此类推。
请帮助我!
答案 0 :(得分:1)
您可以这样做:
$sorted = collect($array)->sortBy(function ($count, $month) {
$currentMonth = (int) \Carbon\Carbon::now()->month;
return ($month + (12 - $currentMonth - 1)) % 12;
});
答案 1 :(得分:0)
您可以使用php形式的功能
krsort();
krsort可以根据键以降序对关联数组进行排序。所以
ksort($array);