ZetCode

PHP foreach

最后修改于 2025 年 2 月 16 日

PHP foreach 教程展示了如何使用 foreach 语句在 PHP 中遍历数组元素和对象属性。

PHP foreach 语句

foreach 语句简化了对数据集合的遍历。foreach 语句逐个遍历数组元素或对象属性,并将当前值复制到在结构中定义的变量中。

PHP foreach 示例

以下示例遍历数组元素。

planets.php
<?php

$planets = [ "Mercury", "Venus", "Earth", "Mars", "Jupiter", 
                 "Saturn", "Uranus", "Neptune" ];

foreach ($planets as $item) {
    
    echo "$item ";
}

echo "\n";

我们有一个行星数组。 使用 foreach 语句,我们逐个遍历元素并打印它们。

$ php planets.php 
Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune

PHP foreach 示例 II

下一个示例遍历一个数组/字典。

dictionary.php
<?php 

$benelux =  [ 'be' => 'Belgium',
              'lu' => 'Luxembourgh',
              'nl' => 'Netherlands' ];

foreach ($benelux as $key => $value) {
    
    echo "$key is $value\n";
}

该示例打印数组的键/值对。

$ php dictionary.php 
be is Belgium
lu is Luxembourgh
nl is Netherlands

PHP foreach 替代语法

PHP 支持带有 foreachendforeach; 的替代语法。

altsyn.php
<?php

$planets = [ "Mercury", "Venus", "Earth", "Mars", "Jupiter", 
                 "Saturn", "Uranus", "Neptune" ];

foreach ($planets as $planet): 
    
    echo "$planet ";
endforeach;

echo "\n";

在本例中,我们使用替代语法遍历数组。

PHP foreach 多维数组

我们可以使用多个 foreach 语句来遍历多维数组。

multidim.php
<?php

$vals = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];

foreach ($vals as $nested) {

    foreach ($nested as $val) {

        echo $val . ' ';
    }

    echo "\n";
}

在本例中,我们使用两个 foreach 语句来遍历一个二维整数数组。

$ php multidim.php 
1 2 3 
4 5 6 
7 8 9 

PHP foreach 修改数组元素

通过使用与号运算符 (&),foreach 语句使用对数组元素的引用。

modify.php
<?php
 
$vals = [1, 2, 3, 4, 5];

foreach ($vals as &$val) {

     $val *= 2;
}
 
print_r($vals); 

在本例中,我们遍历整数数组并将每个元素乘以 2。

$ php modify_array.php 
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)

数组已被修改。

PHP foreach 对象属性

以下示例迭代对象属性。

object.php
<?php
 
class User
{
    public $name;
    public $occupation;
 
    public function __construct($name, $occupation) {
        $this->name = $name;
        $this->occupation = $occupation;
    }
}
 
$user = new User('John Doe', 'gardener');
 
foreach ($user as $propName => $propValue) {
    echo "$propName: $propValue\n";
}

用户对象有两个属性:$name$occupation。 我们使用 foreach 遍历这些属性。

$ php object.php 
name: John Doe
occupation: gardener

来源

PHP 语言参考

在本文中,我们介绍了 PHP foreach 语句。

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有丰富的编程经验。 自 2007 年以来,我一直在撰写编程文章。 迄今为止,我撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

列出所有 PHP 教程。