我有一个例子数组:PHP的asort不能正常工作?
$a = array(
5 => 35,
16 => 22,
7 => 22,
3 => 22,
11 => 22,
9 => 27,
);
,我想通过值排序并记住它的键。 结果,我希望是:
$a = array(
16 => 22,
7 => 22,
3 => 22,
11 => 22,
9 => 27,
5 => 35,
);
所以,我首先想到的是:asort
! 好吧,我做了
asort($a);
但是,没有 - 它不只是移动5 => 35
到数组的末尾。 它改变我的阵列为:
$a = array(
11 => 22,
3 => 22,
7 => 22,
16 => 22,
9 => 27,
5 => 35
);
你看?具有相同值的键被反向排序。为什么?
我不看不到问题:'asort()'不能保证具有相同值的元素的特定排序顺序。 – 2010-09-08 10:12:44
我猜'asort'使用的排序算法不是[stable](http://en.wikipedia.org/wiki/Sorting_algorithm#Stability)。 – Gumbo 2010-09-08 10:13:32