如何按值对数组进行排序,而不是更改值的位置,更改键的位置?
Array
(
[0] => 16
[1] => 12
[2] => 30
)
当我对这个数组进行排序时,我希望得到如下输出:
Array
(
[1] => 16
[0] => 12
[2] => 30
)
答案 0 :(得分:1)
你的起始阵列:
$a = [16, 12, 30];
首先制作副本:
$b = $a;
然后在其中一个上使用asort
进行排序,同时保持关键关联:
asort($a);
然后使用array_combine
与array_keys
一起使用排序数组中的键和未排序数组中的值创建结果数组。
$result = array_combine(array_keys($a), $b);