📅  最后修改于: 2023-12-03 14:45:11.458000             🧑  作者: Mango
foreach
是一种 PHP 循环语句,特别适用于对数组和对象进行遍历。foreach
语句可以迭代各种类型的集合元素,包括数组和对象。
foreach($array as $item){
// do something with $item
}
更全面的语法如下:
foreach ($array as $key => $value) {
statement1
statement2
...
}
上面的语法中,$array
表示要循环遍历的数组或对象,$key
表示当前迭代的元素索引,$value
表示当前迭代元素的值。statement1
、statement2
等为要执行的语句或代码块,可执行一个或多个语句或代码块。
下面是一个简单的例子,用 foreach
循环遍历数组中的元素:
<?php
$fruits = array("apple", "banana", "orange");
foreach ($fruits as $fruit) {
echo $fruit;
}
?>
输出结果:
apple
banana
orange
可以看到,上面的例子中,我们使用了 foreach
循环遍历数组 $fruits
中的元素。在每个循环中,$fruit
代表当前迭代的元素中的值,循环从第一个元素开始迭代,直到最后一个元素。
下面是另一个例子,使用 foreach
循环遍历一个对象 person
:
<?php
class Person {
public $name = "John";
public $age = 30;
public $gender = "male";
}
$person = new Person();
foreach ($person as $key => $value) {
echo $key . ': ' . $value . '<br>';
}
?>
输出结果:
name: John
age: 30
gender: male
可以看出,上面的例子中,我们创建了一个 person
对象,然后使用 foreach
循环语句遍历了该对象中的成员变量。在每个循环中,$key
代表当前迭代的元素中的成员变量名,$value
代表该成员变量中的值。
foreach
循环遍历多维数组时,需要嵌套多个 foreach
循环,如下所示:
$products = [
[
'name' => '奶茶',
'price' => '10',
'amount' => '2'
],
[
'name' => '咖啡',
'price' => '15',
'amount' => '3'
]
];
foreach ($products as $product) {
foreach ($product as $key => $value) {
echo "$key: $value <br>";
}
echo '<br>';
}
输出结果:
name: 奶茶
price: 10
amount: 2
name: 咖啡
price: 15
amount: 3
在 foreach
循环中,可以修改原数组的元素值。如下所示:
$numbers = [1, 2, 3, 4, 5];
foreach ($numbers as &$number) {
$number *= 2;
}
echo print_r($numbers, true);
输出结果:
Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 8
[4] => 10
)
在上述例子中,我们使用 &
符号来取出数组中的每个元素的引用,从而能够修改原数组的值。
在 foreach
循环中,可以使用 break
和 continue
语句来中断循环或跳过循环。如下所示:
$numbers = [1, 2, 3, 4, 5];
foreach ($numbers as $number) {
if($number == 3){
break;
}
if($number == 2){
continue;
}
echo $number . '<br>';
}
输出结果:
1
在上述例子中,当 $number
的值等于 3 时,使用 break
语句中断循环,后面的值将不再输出。当 $number
的值等于 2 时,使用 continue
语句跳过当前循环,后面的值也将不再输出。
foreach
循环语句特别适用于对数组和对象进行遍历。通过嵌套多个 foreach
循环,可以遍历多维数组。使用 break
和 continue
语句可以中断循环或跳过循环。