如何对数组进行排序,因为值会移动,索引会保持不变。我在下面写了这个代码,尽管它给出的答案并不理想。
$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.
谢谢!
使用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);
你可以在这里试试。
干杯。
*:可从PHP 5获得。