Traversing Arrays
The most common task with arrays is to do something with every element—for instance, sending mail to each element of an array of addresses, updating each file in an array of filenames, or adding up each element of an array of prices. There are several ways to traverse arrays in PHP, and the one you choose will depend on your data and the task you’re performing.
The foreach Construct
The most common way to loop over elements of an array is to
use the foreach
construct:
$addresses
=
array
(
"spam@cyberpromo.net"
,
"abuse@example.com"
);
foreach
(
$addresses
as
$value
)
{
echo
"Processing
{
$value
}
\n
"
;
}
Processing
spam
@
cyberpromo
.
net
Processing
abuse
@
example
.
com
PHP executes the body of the loop (the echo
statement) once for each element of
$addresses
in turn, with $value
set to the current element. Elements
are processed by their internal order.
An alternative form of foreach
gives you access to the current key:
$person
=
array
(
'name'
=>
"Fred"
,
'age'
=>
35
,
'wife'
=>
"Wilma"
);
foreach
(
$person
as
$key
=>
$value
)
{
echo
"Fred's
{
$key
}
is
{
$value
}
\n
"
;
}
Fred
'
s
name
is
Fred
Fred
'
s
age
is
35
Fred
'
s
wife
is
Wilma
In this case, the key for each element is placed in $key
and the corresponding value is placed in
$value
.
The foreach
construct does not
operate on the array itself, but rather on a copy of it. You can insert
or delete elements in the body of a foreach
loop, safe in the knowledge that the
loop won’t attempt to process the deleted or inserted elements.
The Iterator Functions ...
Get Programming PHP, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.