该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 . " "; } //输出-0:苹果1:香蕉2:樱桃
默认情况下,$value是的值的副本$list,因此循环内所做的更改不会在$list以后反映出来。
foreach ($list as $value) { $value = $value . " pie"; } echo $list[0]; // Outputs "apple"
要在foreach循环中修改数组,请使用&运算符$value按引用分配。unset此后对变量很重要,以便在$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"