PHP數組foreach循環如何實現逆序訪問?
一、總結
1、array_reverse($array) :foreach(array_reverse($array) as $key=>$value) 。
二、PHP數組foreach循環如何實現逆序訪問?
簡單的一個php數組函數,之前沒這個需要一直都不知道有這么一個函數,擦汗...
- foreach(array_reverse($array) as $key=>$value){
- echo $value.' ';
- }
說明
array_reverse() 接受數組 array 作為輸入並返回一個單元為相反順序的新數組,如果 preserve_keys 為 TRUE 則保留原來的鍵名。
Example #1 array_reverse() 例子
<?php
$input = array("php", 4.0, array("green", "red"));
$result = array_reverse($input);
$result_keyed = array_reverse($input,true);
?>
這將使 $result 和 $result_keyed 具有相同的單元,但是注意鍵名的區別。$result 和 $result_keyed 的打印輸出顯示分別為:
Array ( [0] => Array ( [0] => green [1] => red ) [1] => 4 [2] => php ) Array ( [2] => Array ( [0] => green [1] => red ) [1] => 4 [0] => php )
Note: 第二個參數是 PHP 4.0.3 中新加的。
總結:
如果 array_reverse($arr) 不行,就用 array_reverse($arr,true)
三、php參考手冊:array_reverse
array_reverse
(PHP 4, PHP 5, PHP 7)
array_reverse — 返回單元順序相反的數組
說明 ¶
$array
[, bool $preserve_keys
= false ] )
array_reverse() 接受數組 array
作為輸入並返回一個單元為相反順序的新數組。
參數 ¶
-
array
-
輸入的數組。
-
preserve_keys
-
如果設置為
TRUE
會保留數字的鍵。 非數字的鍵則不受這個設置的影響,總是會被保留。
返回值 ¶
返回反轉后的數組。
范例 ¶
Example #1 array_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 )
四、測試題-簡答題
1、array_reverse()數組會影響到二維數組的第二維么?
解答:不會,只影響第一維。
2、array_reverse($input, true);
中的true的作用是什么?
解答:true對應的參數是preserve_keys
,如果設置為true,TRUE
會保留數字的鍵。 非數字的鍵則不受這個設置的影響,總是會被保留。
也就是說數組逆序了,但是數字鍵和值的對應關系並沒有改變。
3、array_reverse($input);會改變鍵和值的對應關系么?
解答:如果有數字key,則會按照reverse后的value順序重新指定,如果全是非數字的key,則不會改變。