返回陣列中目前的鍵/值對並將陣列指針向前移動一步

each

(PHP 4, PHP 5, PHP 7)

each返回陣列中目前的鍵/值對並將陣列指針向前移動一步

警告

本函式已自 PHP 7.2.0 起被廢棄,並自 PHP 8.0.0 起被移除。 強烈建議不要依賴本函式。

說明

each(array|object &$array): array

返回陣列中目前的鍵/值對並將陣列指針向前移動一步

在執行 each() 之後,陣列指針將停留在陣列中的下一個單元或者當碰到陣列結尾時停留在最後一個單元。如果要再用 each 遍歷陣列,必須使用 reset()

參數

array

輸入的陣列。

返回值

返回 array 陣列中目前指針位置的鍵/值對並向前移動陣列指針。鍵值對被返回為四個單元的陣列,鍵名為01keyvalue。單元 0key 包含有陣列單元的鍵名,1value 包含有數據。

如果內部指針越過了陣列的末端,則 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() 遍歷對像屬性。

參見

  • key() - 從關聯陣列中取得鍵名
  • list() - 把陣列中的值賦給一組變數
  • current() - 返回陣列中的當前值
  • reset() - 將陣列的內部指針指向第一個單元
  • next() - 將陣列中的內部指針向前移動一位
  • prev() - 將陣列的內部指針倒回一位
  • foreach
  • 遍歷對像

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *