📜  php foreac - PHP (1)

📅  最后修改于: 2023-12-03 14:45:11.458000             🧑  作者: Mango

PHP foreach 循环语句

foreach 是一种 PHP 循环语句,特别适用于对数组和对象进行遍历。foreach 语句可以迭代各种类型的集合元素,包括数组和对象。

语法
foreach($array as $item){
    // do something with $item
}

更全面的语法如下:

foreach ($array as $key => $value) {
    statement1
    statement2
    ...
}

上面的语法中,$array 表示要循环遍历的数组或对象,$key 表示当前迭代的元素索引,$value 表示当前迭代元素的值。statement1statement2 等为要执行的语句或代码块,可执行一个或多个语句或代码块。

例子

下面是一个简单的例子,用 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 循环中,可以使用 breakcontinue 语句来中断循环或跳过循环。如下所示:

$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 循环,可以遍历多维数组。使用 breakcontinue 语句可以中断循环或跳过循环。