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";

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

[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


No comments yet. Be the first!

Most Viewed Articles (in PHP )

Polymorphism in PHP

How to make one else for two ifs in PHP

Exception in module wampmanager.exe at 000F15A0 in Windows 8

PHP file upload with IIS on windows XP/2000 etc

Using Text file as database in PHP

Parent: child process exited with status 3221225477 -- Restarting

Setting up PHP in Windows 2003 Server IIS7, and WinXP 64

call_user_func() or call_user_func_array() functions in PHP

Running different websites on different versions of PHP in Windows 2003 & IIS6 platform

Warning: session_start(): open .... failed - PHP error

Decrypting files using GnuPG (GPG) via PHP

Count occurrences of a character in a String in PHP

PHP file upload prompts authentication for anonymous users

Convert a hex string into a 32-bit IEEE 754 float number in PHP

Retrieve multiple rows from mysql and automatically create a table in PHP

Latest Articles (in PHP)