foreach

foreach 语句用于循环遍历数组。

对于每次迭代,将当前数组元素的值分配给 $value 变量,并将数组指针移动一个,并在下一次迭代中处理下一个元素。

以下示例显示分配的数组中的项目。

$list = ['apple', 'banana', 'cherry'];

foreach ($list as $value) {
    echo "I love to eat {$value}. ";
}

预期的输出是:

I love to eat apple. I love to eat banana. I love to eat cherry. 

你还可以使用 foreach 访问值的键/索引:

foreach ($list as $key => $value) {
    echo $key . ":" . $value . " ";
}

//Outputs - 0:apple 1:banana 2:cherry

默认情况下,$value$list 中值的副本,因此在循环内所做的更改将不会在 $list 中反映出来。

foreach ($list as $value) {
    $value = $value . " pie";
}
echo $list[0]; // Outputs "apple"

要修改 foreach 循环中的数组,请使用 & 运算符通过引用分配 $value。之后改变变量非常重要,这样在其他地方重用 $value 就不会覆盖数组。

foreach ($list as &$value) { // Or foreach ($list as $key => &$value) {
    $value = $value . " pie";
}
unset($value);
echo $list[0]; // Outputs "apple pie"

你还可以通过引用当前项的数组键来修改 foreach 循环中的数组项。

foreach ($list as $key => $value) {
    $list[$key] = $value . " pie";
}
echo $list[0]; // Outputs "apple pie"