PHP foreach 循环

2025年03月24日 | 阅读 5 分钟

foreach 循环用于遍历数组元素。它只能用于数组和对象。如果尝试将其用于不同数据类型的变量,它会发出错误。

foreach 循环基于元素而不是索引工作。它提供了一种最简单的方法来迭代数组的元素。

在 foreach 循环中,我们不需要增加值。

语法

foreach 循环还有另一种语法。

语法

流程图

php for loop flowchart

使用“foreach”循环处理索引数组

在上面提到的第一种语法类型中,“foreach”关键字前面有一个括号。“as”关键字后面跟着一个变量和要扫描的数组名称。

在第一次迭代开始时,变量会被分配数组的第一个元素。在循环块结束之前,变量会继续执行循环体中的指令,直到数组元素耗尽,然后取下一个元素的值。

以下是如何使用 foreach 循环的示例

示例

立即执行

输出

10 
20 
30 
40 
50

PHP 有一个非常有用的方法叫做 array_search(),它可以检索值的键。由于索引代表索引数组中的键,因此 array_search() 方法会为每个 $val 提供每个值的零基索引。下面的代码展示了它的工作原理。

示例

立即执行

输出

The element at position 0 is 10 
The element at position 1 is 20 
The element at position 2 is 30 
The element at position 3 is 40 
The element at position 4 is 50

foreach 语法的第二个版本将数组中的每个元素分成两个变量:一个用于值,一个用于键。

由于在索引数组的情况下,索引本身充当键,因此 $k 变量会迭代地获取数组中每个元素的递增索引。

示例

立即执行

输出

Index: 0 => Value: 10 
Index: 1 => Value: 20 
Index: 2 => Value: 30 
Index: 3 => Value: 40 
Index: 4 => Value: 50

使用“for each”循环迭代关联数组

键值对的集合称为关联数组。foreach 语法的第二个版本适用于迭代关联数组。数组的元素被解包到两个变量中,每个变量都取键的值。

示例

这是使用 foreach 循环迭代状态及其相应首都的数组的示例。

代码

立即执行

输出

The capital of Maharashtra is Mumbai 
The capital of Telangana is Hyderabad 
The capital of UP is Lucknow 
The capital of Tamil Nadu is Chennai

然而,我们仍然可以使用原始的 for each 语句,它只将数组中每个键值对的值存储在变量中。接下来,我们使用之前使用的 array_search() 方法来获取与该值对应的键。

示例

立即执行

输出

The capital of Maharashtra is Mumbai 
The capital of Telangana is Hyderabad 
The capital of UP is Lucknow 
The capital of Tamil Nadu is Chennai

使用“for each”循环迭代二维数组

PHP 允许声明多维数组,其中每个元素都是一个不同的数组。请记住,子数组和外层数组都可以是关联数组或索引数组。

下面展示了一个二维数组,也称为数组或数组。我们需要嵌套循环来导航如下的层叠数组结构

代码

立即执行

输出

Contents of Array 0:
0 => 1
1 => 2
2 => 3
3 => 4

Contents of Array 1:
0 => one
1 => two
2 => three
3 => four
Contents of Array 2:
one => 1
two => 2
three => 3

下一主题PHP While 循环