Programming Tutorials

Traversing Arrays Using foreach in PHP

By: Andi, Stig and Derick in PHP Tutorials on 2008-11-22  

There are a few different ways of iterating over an array. The most elegant way is the foreach() loop construct. The general syntax of this loop is

foreach($array as [$key =>] [&] $value)
...

$key is optional, and when specified, it contains the currently iterated value's key, which can be either an integer or a string value, depending on the key's type. Specifying & for the value is also optional, and it has to be done if you are planning to modify $value and want it to propagate to $array. In most cases, you won't want to modify the $value when iterating over an array and will, therefore, not need to specify it.

Here's a short example of the foreach() loop:

$players = array("John", "Barbara", "Bill", "Nancy");
print "The players are:\n";
foreach ($players as $key => $value) {
print "#$key = $value\n";
}

The output of this example is

The players are:
#0 = John
#1 = Barbara
#2 = Bill
#3 = Nancy

Here's a more complicated example that iterates over an array of people and marks which person is considered old and which one is considered young:

$people = array(1 => array("name" => "John", "age" => 28),
.array("name" => "Barbara", "age" => 67));
foreach ($people as &$person) {
if ($person["age"] >= 35) {
$person["age group"] = "Old";
} else {
$person["age group"] = "Young";
}
}
print_r($people);

Again, this code makes use of the print_r() function. The output of the previous code is the following:

Array
(
[1] => Array
(
[name] => John
[age] => 28
[age group] => Young
)
[2] => Array
(
[name] => Barbara
[age] => 67
[age group] => Old
)
)

You can see that both the John and Barbara arrays inside the $people array were added an additional value with their respective age group.






Add Comment

* Required information
1000

Comments

No comments yet. Be the first!

Most Viewed Articles (in PHP )

Latest Articles (in PHP)