2011-01-06 24 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); 
?>