each

(PHP 3, PHP 4, PHP 5)

each --  返回陣列中現用的的鍵/值對並將陣列指標向前搬移一步

說明

array each ( array &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

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

注意

因為將一個陣列賦值給另一個陣列時會重設原來的陣列指標,因此在上邊的例子中若果我們在迴圈內定將 $fruit 賦給了另一個變量的話將會導致無限迴圈。

參見 key()list()current()reset()next()prev()foreach