Looping through arrays with foreach
- From: "Sjoerd" <sjoerder@xxxxxxxxx>
- Date: 31 Mar 2006 02:29:42 -0800
Summary: Use foreach(..) instead of while(list(..)=each(..)).
--=[ How to use foreach ]=--
Foreach is a language construct, meant for looping through arrays.
There are two syntaxes; the second is a minor but useful extension
of the first:
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
For example:
<?php
$arr = array("one", "two", "three");
foreach ($arr as $value) {
echo "Value: $value\n";
}
?>
This will output:
Value: one
Value: two
Value: three
--=[ Why not to use list & each ]=--
Another method to loop through an array is the following:
<?php
while (list(, $value) = each($arr)) {
echo "Value: $value<br />\n";
}
?>
This has some disadvantages:
- It is less clear, because list() looks like a function but
actually works the other way around: instead of returning
something, it takes a parameter by being the left-hand side
of the expression and assigns values to the parameters.
- You have to reset() the array if you want to loop through it
again.
- It is approx. three times slower than foreach.
--=[ About for & count ]=--
Another method to loop through an array:
for ($i = 0; $i < count($arr); $i++) {
echo "value: $arr[$i]\n";
}
Consider this array:
array(5 => "Five");
The above for-loop would loop from elements 0 through 5, while
only one element exists. If this is what you want, the for-loop
is an effective way to loop through an array. If not, use
foreach instead.
.
- Follow-Ups:
- Re: Looping through arrays with foreach
- From: chernyshevsky@xxxxxxxxxxx
- Re: Looping through arrays with foreach
- From: Richard Levasseur
- Re: Looping through arrays with foreach
- From: Chung Leong
- Re: Looping through arrays with foreach
- From: Oli Filth
- Re: Looping through arrays with foreach
- Prev by Date: Re: JavaScript to PHP?
- Next by Date: Re: Looping through arrays with foreach
- Previous by thread: mod_vhost_alias
- Next by thread: Re: Looping through arrays with foreach
- Index(es):
Relevant Pages
|