array_reverse()
(PHP 4, PHP 5, PHP 7)
返回单元顺序相反的数组
说明
array_reverse(array $array[,bool $preserve_keys=FALSE]): array
array_reverse()接受数组$array作为输入并返回一个单元为相反顺序的新数组。
参数
- $array
输入的数组。
- $preserve_keys
如果设置为
TRUE
会保留数字的键。非数字的键则不受这个设置的影响,总是会被保留。
返回值
返回反转后的数组。
范例
Example #1array_reverse()例子
<?php $input = array("php", 4.0, array("green", "red")); $reversed = array_reverse($input); $preserved = array_reverse($input, true); print_r($input); print_r($reversed); print_r($preserved); ?>
以上例程会输出:
Array ( [0] => php [1] => 4 [2] => Array ( [0] => green [1] => red ) ) Array ( [0] => Array ( [0] => green [1] => red ) [1] => 4 [2] => php ) Array ( [2] => Array ( [0] => green [1] => red ) [1] => 4 [0] => php )
参见
array_flip()
交换数组中的键和值
Needed to just reverse keys. Don't flog me if there is a better way. This was a simple solution. <?php function array_reverse_keys($ar){ return array_reverse(array_reverse($ar,true),false); } ?>
Here are a couple of routines to swap the order of two elements in an array <?php function array_swap_forward($arr,$elem) { $ndx = array_search($elem,$arr) - 1; $b4 = array_slice($arr,0,$ndx); $mid = array_reverse(array_slice($arr,$ndx,2)); $after = array_slice($arr,$ndx + 2); return array_merge($b4,$mid,$after); } function array_swap_back($arr,$elem) { $ndx = array_search($elem,$arr); $b4 = array_slice($arr,0,$ndx); $mid = array_reverse(array_slice($arr,$ndx,2)); $after = array_slice($arr,$ndx + 2); return array_merge($b4,$mid,$after); } $arr =array('a','b','c','d','e','f'); print_r(array_swap_forward($arr,'c')); echo '<br>'; print_r(array_swap_back($arr,'c')); ?>
This code can help in recursive reversing of the array... <?php $arr1 = array(2,1,array(5,2,1,array(9,8,7)),5,0); $arr1 = array_reverse($arr1); function Reverse_Array($array) { $index = 0; foreach ($array as $subarray) { if (is_array($subarray)) { $subarray = array_reverse($subarray); $arr = Reverse_Array($subarray); $array[$index] = $arr; } else {$array[$index] = $subarray;} $index++; } return $array; } $arr2 = Reverse_Array($arr1); ?>