我想先按值,然后按键对这个键值数组进行排序。
这是阵列:
$a = [
10 => 1,
4 => 2,
3 => 2
];
我想要:
4 => 2,
3 => 2,
10 => 1
我尝试使用arsort
,但无法得到当前的答案。
使用uksort
按键排序,使用这些键查找数组中的值,首先按值和相等时的键进行比较:
uksort($arr, function ($a, $b) use ($arr) {
if (($res = $arr[$a] - $arr[$b]) != 0) {
return $res;
}
return $a - $b;
});
请参阅https://stackoverflow.com/a/17364128/476有关排序回调的更深入解释。