each
(PHP 4, PHP 5, PHP 7)
each — 返回陣列中目前的鍵/值對並將陣列指針向前移動一步
本函式已自 PHP 7.2.0 起被廢棄,並自 PHP 8.0.0 起被移除。 強烈建議不要依賴本函式。
說明
&$array
): array返回陣列中目前的鍵/值對並將陣列指針向前移動一步
在執行 each() 之後,陣列指針將停留在陣列中的下一個單元或者當碰到陣列結尾時停留在最後一個單元。如果要再用 each 遍歷陣列,必須使用 reset()。
參數
-
array
-
輸入的陣列。
返回值
返回 array
陣列中目前指針位置的鍵/值對並向前移動陣列指針。鍵值對被返回為四個單元的陣列,鍵名為0
,1
,key
和 value
。單元 0
和
key
包含有陣列單元的鍵名,1
和
value
包含有數據。
如果內部指針越過了陣列的末端,則 each() 返回 false
。
範例
示例 #1 each() 例子
<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>
$bar 現在包含有如下的鍵/值對:
Array ( [1] => bob [value] => bob [0] => 0 [key] => 0 )
<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>
$bar 現在包含有如下的鍵/值對:
Array ( [1] => Bob [value] => Bob [0] => Robert [key] => Robert )
each() 經常和 list() 結合使用來遍歷陣列,例如:
示例 #2 用 each() 遍歷陣列
<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
?>
以上例程會輸出:
a => apple b => banana c => cranberry
因為將一個陣列賦值給另一個陣列時會重置原來的陣列指針,因此在上邊的例子中如果我們在循環內部將 $fruit 賦給了另一個變數的話將會導致無限循環。
each() 也接受對象,但可能會返回意外結果。因此不建議使用 each() 遍歷對像屬性。