PHP foreach Loop
The foreach
loop - Loops through a block of code for each element in an array.
The PHP foreach Loop
The foreach
loop works only on arrays, and is used to loop through each key/value pair in an array.
Syntax
foreach [$array as$value] {
code to be executed;
}
For every loop iteration, the value of the current array element is assigned to $value and the array pointer is moved by one, until it reaches the last array element.
Examples
The following example will output the values of the given array [$colors]:
Example
Try it Yourself »
The following example will output both the keys and the values of the given array [$age]:
Example
Try it Yourself »
You will learn more about arrays in the PHP Arrays chapter.
[PHP 4, PHP 5, PHP 7, PHP 8]
The foreach
construct provides an easy way to iterate over arrays. foreach
works only on arrays and objects, and will issue an error when you try to use it on a variable with a different data type or an uninitialized variable. There are two syntaxes:
foreach [iterable_expression as $value] statement foreach [iterable_expression as $key => $value] statement
The first form traverses the iterable given by iterable_expression
. On each iteration, the value of the current element is assigned to
$value
.
The second form will additionally assign the current element's key to the $key
variable on each iteration.
Note that foreach
does not modify the internal array pointer, which is used by functions such as current[] and key[].
It is possible to customize object iteration.
In order to be able to directly modify array elements within the loop precede $value
with &. In that case the value will be assigned by reference.
Warning
Reference of a $value
and the last array element remain even after
the foreach
loop. It is recommended to destroy it by unset[]. Otherwise you will experience the following behavior:
It is possible to iterate a constant array's value by reference:
Note:
foreach
does not support the ability to suppress error messages using@
.
Some more examples to demonstrate usage:
Unpacking nested arrays with list[]
[PHP 5 >= 5.5.0, PHP 7, PHP 8]
It is possible to iterate over an array of arrays and unpack the nested array into loop variables by providing a list[] as the value.
For example:
The above example will output:
You can provide fewer elements in the list[] than there are in the nested array, in which case the leftover array values will be ignored:
The above example will output:
A notice will be generated if there aren't enough array elements to fill the list[]:
The above example will output:
Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:
Sanusi Hassan ¶
4 days ago
destructure array elements
you can unpac nested array elements using the following
Okafor Chiagozie ¶
1 day ago
An easier way to unpack nested array elements
$array = [
[1, 2],
[3, 4],
];
foreach [$array as [$a, $b]] {
echo "A: $a; B: $b\n";
}