(PHP 4, PHP 5, PHP 7)
each — 返回?cái)?shù)組中當(dāng)前的鍵/值對并將數(shù)組指針向前移動一步
本函數(shù)已自 PHP 7.2.0 起被廢棄,并自 PHP 8.0.0 起被移除。 強(qiáng)烈建議不要依賴本函數(shù)。
&$array
): array返回?cái)?shù)組中當(dāng)前的鍵/值對并將數(shù)組指針向前移動一步
在執(zhí)行 each() 之后,數(shù)組指針將停留在數(shù)組中的下一個單元或者當(dāng)碰到數(shù)組結(jié)尾時(shí)停留在最后一個單元。如果要再用 each 遍歷數(shù)組,必須使用 reset()。
array
輸入的數(shù)組。
返回 array
數(shù)組中當(dāng)前指針位置的鍵/值對并向前移動數(shù)組指針。鍵值對被返回為四個單元的數(shù)組,鍵名為0
,1
,key
和 value
。單元 0
和
key
包含有數(shù)組單元的鍵名,1
和
value
包含有數(shù)據(jù)。
如果內(nèi)部指針越過了數(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() 結(jié)合使用來遍歷數(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
因?yàn)閷⒁粋€數(shù)組賦值給另一個數(shù)組時(shí)會重置原來的數(shù)組指針,因此在上邊的例子中如果我們在循環(huán)內(nèi)部將 $fruit 賦給了另一個變量的話將會導(dǎo)致無限循環(huán)。
each() 也接受對象,但可能會返回意外結(jié)果。因此不建議使用 each() 遍歷對象屬性。