2010-01-11 263 views
8

我怎麼能這個數組由arrray關鍵排序排列順序

array(
4 => 'four', 
3 => 'three', 
2 => 'two', 
1 => 'one', 
) 

這樣

array(
1 => 'one', 
2 => 'two', 
3 => 'three', 
4 => 'four', 
) 
+0

字典未分類...額外將這些密鑰放入一個單獨的列表中並對其進行排序。 –

回答

21

如果你只是想顛倒順序,使用array_reverse

$reverse = array_reverse($array, true); 

第二個參數是保存鍵。

3

您有一個數組排序,要通過按鍵,對它進行排序以相反的順序 - - 可以使用krsort功能:

排序通過以相反順序 鍵的陣列,保持鍵數據 相關性。這對於關聯數組主要有用 。


在你的情況下,你有這樣的代碼:

$arr = array(
    1 => 'one', 
    2 => 'two', 
    3 => 'three', 
    4 => 'four', 
); 

krsort($arr); 
var_dump($arr); 

這將讓你這樣的輸出:

$ /usr/local/php-5.3/bin/php temp.php 
array(4) { 
    [4]=> 
    string(4) "four" 
    [3]=> 
    string(5) "three" 
    [2]=> 
    string(3) "two" 
    [1]=> 
    string(3) "one" 
} 


作爲sidenode:如果你想按價值排序,你可以使用arsort - 但這似乎並不是你想要的。

0

嘗試krsort() - 將使用數組鍵值進行反向排序,而rsort將對數組值進行排序。

27

如果你想在DESC順序使用的按鍵排序:如果你想在DESC順序值進行排序並保持索引關係使用

krsort($arr); 

arsort($arr); 

如果你想在DESC自然順序中排序值並保持索引關聯使用:

natcasesort($arr); 
$arr = array_reverse($arr, true);