先看一下官方文档的解释
foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。有两种语法:
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。
下边贴一段代码帮助理解一下
第一种用法:
$arr = array(1,2,3,4);//定义数组
foreach ($arr as &$value) {
$value = $value*2;//循环遍历并修改数组中的值
}
echo "<pre>";
print_r($arr);//打印输出最终结果
结果:
Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 8
)
第二种用法:
$a = array(
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => 17
);
foreach ($a as $k => $v) {
echo "<pre>";
echo "[$k] => $v\n";
}
结果:
[one] => 1
[two] => 2
[three] => 3
[seventeen] => 17
解说:k其实指的就是key,v其实指的就是value