2012-08-04 42 views
1

如何訂購這個棘手的PHP關聯數組?如何訂購這個棘手的PHP關聯數組?

我有這樣的關聯數組:

Array (
    [4] => 3 
    [2] => 4 
    [3] => 1 
    [6] => 1 
    [1] => 1 
) 

我需要用最高值鍵來訂購吧,但我也需要保持與同價值的鑰匙,原來的順序,所以它需要來出:

Array (
    [2] => 4 
    [4] => 3 
    [3] => 1 
    [6] => 1 
    [1] => 1 
    ) 

,因爲它重新排列的按鍵與基於密鑰的數字順序上,我在這裏的損失我真的相同的值,我不能用arsort()!有什麼建議麼?

回答

4

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 可能比其他傳統分類函數稍慢。

+0

這個伎倆!謝謝! – user2781234 2012-08-04 04:55:07