PHP 编程/foreach 循环
外观
< PHP 编程
(重定向自 PHP 编程/foreach 循环)foreach ($array as $someVar) {
echo ($someVar . "<br />");
}
或
foreach ($array as $key => $someVar) {
echo ($key." holds the value ".$someVar."<br />");
}
该foreach循环是标准 for 循环 的一种特殊形式。上面的示例将打印$array的所有值。foreach结构是循环遍历数组的一种方便方法。
Foreach 循环在处理使用任意键索引的数组(例如非数字键)时非常有用。
$array = array(
"1st" => "My House",
"2nd" => "My Car",
"3rd" => "My Lab"
);
要使用经典的for结构,您需要编写
// get all the array keys
$arrayKeys = array_keys($array);
// get amount of values from array
$count = count($array);
// loop through the keys
for ($i = 0; $i < $count; $i++) {
// get each array value using its key
echo $array[($arrayKeys[$i])] . "<br />";
}
基本上,数组值只能通过其键访问:为了确保您获得所有值,您首先必须列出所有存在的键,然后获取所有对应的值。访问第一个数组值,前面的示例执行以下步骤。
$firstKey = $arrayKeys[0]; // which is '1st'
$firstValue = $array[$firstKey]; // which is 'My House' ($array('1st'))
该foreach结构为您完成了所有基础工作。
foreach ($array as $someVar) {
echo $someVar . "<br />";
}
请注意,后面的示例更容易阅读(和编写)。两者都将输出
My House My Car My Lab
如果需要在循环体中使用数组的键,只需添加变量,如下面的语句所示。短语 '$myKey => $value' 使键的值可访问。
foreach ($array as $myKey => $value) {
// use $myKey
}
请注意,这在构造 HTML 中的下拉列表时非常有用。您可以使用 foreach 循环将$myKey变量插入value="..."部分,将$value作为实际文本。
这种形式模仿我们为 $array 元素使用自定义键的方式。它不仅将 $array 的元素分配给 $someVar,而且还将这些元素的键分配给 $i。
<?php
$array = array("1st" => "My House", "2nd" => "My Car", "3rd" => "My Lab");
foreach ($array as $key => $someVar) {
echo $key . ": " . $someVar . "<br />\n";
}
?>
1st: My House<br /> 2nd: My Car<br /> 3rd: My Lab<br />
1st: My House 2nd: My Car 3rd: My Lab
请注意,如果您在foreach循环中更改了分配的变量,则更改不会反映到数组中。因此,如果您需要更改数组的元素,则需要使用数组键更改它们。示例
$array = array(
"1st" => "My House",
"2nd" => "My Car",
"3rd" => "My Lab"
);
foreach ($array as $i => $someVar) {
// OK
if($someVar == 'My Lab') {
$array[$i] = 'My Laboratory';
}
// doesn't update the array
$someVar = 'Foo';
}