PHP编程
Completion requirements
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
语句
foreach
循环在处理索引为任意键(例如非数字键)的数组时非常有用:
$array = array(
"1st" => "My House",
"2nd" => "My Car",
"3rd" => "My Lab"
);
如果使用经典的 for
结构,你需要这样写:
// 获取数组所有的键
$arrayKeys = array_keys($array);
// 获取数组的元素数量
$count = count($array);
// 遍历所有的键
for ($i = 0; $i < $count; $i++) {
// 使用键来获取每个值
echo $array[($arrayKeys[$i])] . "<br />";
}
基本上,数组的值只能通过其键来访问:为了确保你获得所有的值,你首先需要列出所有的键,然后获取所有对应的值。上面的例子是通过以下步骤访问第一个数组值的:
$firstKey = $arrayKeys[0]; // '1st'
$firstValue = $array[$firstKey]; // 'My House' ($array['1st'])
foreach
结构为你完成了这些基础工作:
foreach ($array as $someVar) {
echo $someVar . "<br />";
}
可以看到,后面的示例更易读(和编写)。两者都会输出:
My House
My Car
My Lab
foreach
与键值
如果你需要在循环体中使用数组的键,只需像以下语句那样添加变量。$myKey => $value
使得键的值变得可访问:
foreach ($array as $myKey => $value) {
// 使用 $myKey
}
这在构建 HTML 下拉列表时非常有用。你可以使用 foreach
循环将 $myKey
变量插入到 value="..."
部分,$value
作为实际的文本值。
这种形式模拟了我们为 $array
元素使用自定义键的方式。它不仅会将 $array
的元素赋值给 $someVar
,还会将这些元素的键赋值给 $i
。
PHP 代码示例:
<?php
$array = array("1st" => "My House", "2nd" => "My Car", "3rd" => "My Lab");
foreach ($array as $key => $someVar) {
echo $key . ": " . $someVar . "<br />\n";
}
?>
PHP 输出:
1st: My House<br />
2nd: My Car<br />
3rd: My Lab<br />
HTML 渲染:
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) {
// 正确的方式
if ($someVar == 'My Lab') {
$array[$i] = 'My Laboratory';
}
// 这不会更新数组
$someVar = 'Foo';
}
在上面的例子中,只有在通过键修改 $array
元素时,数组才会被更新。
Last modified: Thursday, 9 January 2025, 10:53 PM