手册
目录
foreach 循环最常见的用途是循环遍历数组的元素。
循环遍历索引数组的元素:
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as $x) {
echo "$x
";
}
运行实例 »点击 "运行实例" 按钮查看在线实例
在每次循环迭代中,当前数组元素的值都会分配给变量 $x。迭代会一直持续到它到达数组的最后一个元素。
上面的数组是一个索引数组,其中第一个元素的键为 0,第二个元素的键为 1,依此类推。
关联数组则不同,关联数组使用您为其分配的命名键,并且在循环遍历关联数组时,您可能希望同时保留键和值。
这可以通过在 foreach 定义中同时指定键和值来完成,如下所示:
打印 $members 数组中的键和值:
$members = array("Bill"=>"35", "Steve"=>"37", "Elon"=>"43");
foreach ($members as $x => $y) {
echo "$x : $y
";
}
运行实例 »点击 "运行实例" 按钮查看在线实例
另请参阅:PHP 数组。
foreach 循环也可以用于循环遍历对象的属性:
打印 $myCar 对象的属性名称和值:
class Car {
public $color;
public $model;
public function __construct($color, $model) {
$this->color = $color;
$this->model = $model;
}
}
$myCar = new Car("red", "Volvo");
foreach ($myCar as $x => $y) {
echo "$x: $y
";
}
运行实例 »点击 "运行实例" 按钮查看在线实例
另请参阅:PHP 对象和类。
使用 break 语句,我们可以在循环未到达末尾时停止它:
如果 $x 是 "blue",则停止循环:
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as $x) {
if ($x == "blue") break;
echo "$x
";
}
运行实例 »点击 "运行实例" 按钮查看在线实例
使用 continue 语句,我们可以停止当前迭代,并继续下一次迭代:
如果 $x 是 "blue",则停止并跳转到下一次迭代:
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as $x) {
if ($x == "blue") continue;
echo "$x
";
}
运行实例 »点击 "运行实例" 按钮查看在线实例
在循环遍历数组元素时,默认情况下,对数组元素所做的任何更改都不会影响原始数组:
默认情况下,更改数组元素不会影响原始数组:
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as $x) {
if ($x == "blue") $x = "pink";
}
var_dump($colors);
运行实例 »点击 "运行实例" 按钮查看在线实例
但是,通过在 foreach 声明中使用 & 字符,数组元素会按引用分配,这会导致对数组元素所做的任何更改也会反映到原始数组中:
通过按引用分配数组元素,更改将影响原始数组:
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as &$x) {
if ($x == "blue") $x = "pink";
}
var_dump($colors);
运行实例 »点击 "运行实例" 按钮查看在线实例
foreach 循环语法也可以使用 endforeach 语句这样编写:
循环遍历索引数组中的元素:
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as $x) :
echo "$x
";
endforeach;
运行实例 »点击 "运行实例" 按钮查看在线实例
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
71万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习