如何订购这个棘手的PHP关联数组?
我有一个关联数组:
Array (
[4] => 3
[2] => 4
[3] => 1
[6] => 1
[1] => 1
)
我需要按值最高的键排序,但我也需要保持值相同的键在原始顺序中,所以它需要出来:
Array (
[2] => 4
[4] => 3
[3] => 1
[6] => 1
[1] => 1
)
我不能使用arsort(),因为它会根据键的数字顺序重新排列具有相同值的键,我真的很不知所措!有什么建议吗?
natsort救援:
$blub = array(4 => 3, 2 => 4, 3 => 1, 6 => 1, 1 => 1);
natsort($blub);
$blub = array_reverse($blub, true);
var_dump($blub);
这将始终输出:
array(5) { [2]=> int(4) [4]=> int(3) [3]=> int(1) [6]=> int(1) [1]=> int(1) }
natsort似乎使用了一种不同的排序算法,幸运的是,当值与asort相同时,该算法可以保持顺序。但是请注意,natsort可能比其他传统排序函数慢一点。