2011-01-06 110 views
0

我需要在PHP中重新排序數組。如何在PHP中重新排列數組?

數組:

Array 
(
    [0] => /riado/?p=1 
    [1] => /riado/?p=2 
    [2] => /riado/?p=3 
    [3] => /riado/?p=4 
) 

如何重新安排到:

Array 
(
    [0] => /riado/?p=4 
    [1] => /riado/?p=3 
    [2] => /riado/?p=2 
    [3] => /riado/?p=1 
) 

我已搜查,但我無法找到太多的線索。你能給我一些關於如何實現這一目標的線索嗎?

回答

6
$array = array_reverse($array); 

將扭轉的$array的內容,不管內容的排序順序。

rsort($array); 

將以相反的字母順序對數組進行排序。

+0

不是。這將保持鍵 - >值的關聯。 (在大多數情況下,結果應該可以用相同的方式) – Mchl 2011-01-06 11:05:54

+2

@Mchl實際上,'array_reverse'不會保留鍵值關聯,除非你做'array_reverse($ array,true);' – 2011-01-06 11:07:13

+0

沒有注意到。 – Mchl 2011-01-06 11:51:17

4
rsort($arr); 

這應該做的伎倆

+0

我認爲@André需要顛倒元素順序,而不是逆向排序。 – 2011-01-06 11:05:51

1

簡單的rsort應該產生你需要的結果,如果你想以相反的順序排列數組。 (如果你只是想交換從第一個元素到最後,等你當然可以使用array_reverse或簡單地迭代這個數組從後到前)。

逆向排序例如:

<?php 
$testArray = array('/riado/?p=1', '/riado/?p=2', '/riado/?p=3', '/riado/?p=4'); 
rsort($testArray); 
print_r($testArray); 
?> 

array_reverse例如:

<?php 
$testArray = array('/riado/?p=1', '/riado/?p=2', '/riado/?p=3', '/riado/?p=4'); 
$testArray = array_reverse($testArray); 
print_r($testArray); 
?>