如何对数组进行排序,因为值会移动并且索引会保持不变。我在下面写了这段代码,虽然它给出的答案并不理想。
$array = array(6,2,22,15,33,40,30,70,65);
asort($array,);
print_r($array);
现在对值进行排序,但索引随值移动。我得到了答案;
Array ( [1] => 2 [0] => 6 [3] => 15 [2] => 22 [6] => 30 [4] => 33 [5] => 40 [8] => 65 [7] => 70 )
虽然我希望它显示如下;
Array ( [0] => 2 [1] => 6 [2] => 15, etc.
谢谢!
答案 0 :(得分:0)
使用 array_combine() *
它将两个数组合并为一个,使用第一个作为一组键,第二个作为新数组的值集合。
所以基本上你只需要获取原始密钥和排序值,然后将它们提供给array_combine()
。
$a = [
'a' => 'orange',
'b' => 'apple',
'o' => 'banana',
];
$tmp = $a;
sort($tmp);
$result = array_combine(array_keys($a), $tmp);
var_dump($a, $result);
您可以尝试here。
干杯。
*:可从PHP 5获得。