我有一個例子數組: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