each

(PHP 4, PHP 5, PHP 7)

each返回數(shù)組中當前的鍵/值對并將數(shù)組指針向前移動一步

警告

本函數(shù)已自 PHP 7.2.0 起被廢棄,并自 PHP 8.0.0 起被移除。 強烈建議不要依賴本函數(shù)。

說明

each(array|object &$array): array

返回數(shù)組中當前的鍵/值對并將數(shù)組指針向前移動一步

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

參數(shù)

array

輸入的數(shù)組。

返回值

返回 array 數(shù)組中當前指針位置的鍵/值對并向前移動數(shù)組指針。鍵值對被返回為四個單元的數(shù)組,鍵名為0,1,keyvalue。單元 0key 包含有數(shù)組單元的鍵名,1value 包含有數(shù)據(jù)。

如果內部指針越過了數(shù)組的末端,則 each() 返回 false

范例

示例 #1 each() 例子

<?php
$foo 
= array("bob""fred""jussi""jouni""egon""marliese");
$bar each($foo);
print_r($bar);
?>

$bar 現(xiàn)在包含有如下的鍵/值對:

Array
(
    [1] => bob
    [value] => bob
    [0] => 0
    [key] => 0
)

<?php
$foo 
= array("Robert" => "Bob""Seppo" => "Sepi");
$bar each($foo);
print_r($bar);
?>

$bar 現(xiàn)在包含有如下的鍵/值對:

Array
(
    [1] => Bob
    [value] => Bob
    [0] => Robert
    [key] => Robert
)

each() 經(jīng)常和 list() 結合使用來遍歷數(shù)組,例如:

示例 #2 用 each() 遍歷數(shù)組

<?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

警告

因為將一個數(shù)組賦值給另一個數(shù)組時會重置原來的數(shù)組指針,因此在上邊的例子中如果我們在循環(huán)內部將 $fruit 賦給了另一個變量的話將會導致無限循環(huán)。

警告

each() 也接受對象,但可能會返回意外結果。因此不建議使用 each() 遍歷對象屬性。

參見

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