如何对PHP数组进行排序,并对每个元素使用相同的索引


How to sort a PHP array and using the same index for each element?

我有这样一个数组:

numbers = array(
                 "1"=>2
                 "2"=>5
                 "3"=>1
                 "4"=>12
);

如果我使用sort(numbers)数组将变成

numbers = array(
                 "1"=>1
                 "2"=>2
                 "3"=>5
                 "4"=>12
);

索引仍然在相同的位置,只是对数字进行排序我还想像下面这样移动索引:

numbers = array(
                 "3"=>1
                 "1"=>2
                 "2"=>5
                 "4"=>12
);

您应该在此上下文中使用asort

这个函数对数组进行排序,使数组的下标保持它们的值与其关联的数组元素的相关性。这是主要用于对关联数组中实际元素进行排序时

<?php
$numbers = array(1=>2,2=>5,3=>1,4=>12);
asort($numbers);
print_r($numbers);

OUTPUT :

Array
(
    [3] => 1
    [1] => 2
    [2] => 5
    [4] => 12
)