如何将未排序的数组的键更改为数组排序时的键?

时间:2016-08-05 22:23:36

标签: php arrays sorting

如何按值对数组进行排序,而不是更改值的位置,更改键的位置?

Array
(
    [0] => 16
    [1] => 12
    [2] => 30
)

当我对这个数组进行排序时,我希望得到如下输出:

Array
(
    [1] => 16
    [0] => 12
    [2] => 30
)

1 个答案:

答案 0 :(得分:1)

你的起始阵列:

$a = [16, 12, 30];

首先制作副本:

$b = $a;

然后在其中一个上使用asort进行排序,同时保持关键关联:

asort($a);

然后使用array_combinearray_keys一起使用排序数组中的键和未排序数组中的值创建结果数组。

$result = array_combine(array_keys($a), $b);