each
返回数组中当前的键/值对并将数组指针向前移动一步
&warn.deprecated.function-7-2-0.removed-8-0-0;
&reftitle.description;
arrayeach
arrayobjectarray
返回数组中当前的键/值对并将数组指针向前移动一步
在执行 each
之后,数组指针将停留在数组中的下一个单元或者当碰到数组结尾时停留在最后一个单元。如果要再用
each 遍历数组,必须使用 reset。
&reftitle.parameters;
array
输入的数组。
&reftitle.returnvalues;
返回 array 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,键名为0,1,key和 value。单元 0 和
key 包含有数组单元的键名,1 和
value 包含有数据。
如果内部指针越过了数组的末端,则 each 返回 &false;。
&reftitle.examples;
each 示例
]]>
$bar 现在包含有如下的键/值对:
bob
[value] => bob
[0] => 0
[key] => 0
)
]]>
"Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>
]]>
$bar 现在包含有如下的键/值对:
Bob
[value] => Bob
[0] => Robert
[key] => Robert
)
]]>
each 经常和 list
结合使用来遍历数组,例如:
用 each 遍历数组
'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
?>
]]>
&example.outputs;
apple
b => banana
c => cranberry
]]>
因为将一个数组赋值给另一个数组时会重置原来的数组指针,因此在上边的例子中如果我们在循环内部将
$fruit 赋给了另一个变量的话将会导致无限循环。
each 也接受对象,但可能会返回意外结果。因此不建议使用
each 遍历对象属性。
&reftitle.seealso;
key
list
current
reset
next
prev
&foreach;
遍历对象