for loops are the most complex loops in PHP. They behave like their C counterparts. The syntax of a for loop is:

for (expr1; expr2; expr3)
    statement

The first expression (expr1) is evaluated (executed) once unconditionally at the beginning of the loop.

In the beginning of each iteration, expr2 is evaluated. If it evaluates to TRUE, the loop continues and the nested statement(s) are executed. If it evaluates to FALSE, the execution of the loop ends.

At the end of each iteration, expr3 is evaluated (executed).

Each of the expressions can be empty or contain multiple expressions separated by commas. In expr2, all expressions separated by a comma are evaluated but the result is taken from the last part. expr2 being empty means the loop should be run indefinitely (PHP implicitly considers it as TRUE, like C). This may not be as useless as you might think, since often you’d want to end the loop using a conditional break statement instead of using the for truth expression.

Consider the following examples. All of them display the numbers 1 through 10:

<?php
/* example 1 */

for ($i = 1; $i <= 10; $i++) {
echo $i;
}

/* example 2 */

for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
echo $i;
}

/* example 3 */

$i = 1;
for (; ; ) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}

/* example 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>

Of course, the first example appears to be the nicest one (or perhaps the fourth), but you may find that being able to use empty expressions in for loops comes in handy in many occasions.

PHP also supports the alternate “colon syntax” for for loops.

for (expr1; expr2; expr3):
    statement
    ...
endfor;

Its a common thing to many users to iterate though arrays like in the example below.

<?php
/*
* This is an array with some data we want to modify
* when running through the for loop.
*/
$people = Array(
Array('name' => 'Kalle', 'salt' => 856412),
Array('name' => 'Pierre', 'salt' => 215863)
);

for($i = 0; $i < sizeof($people); ++$i)
{
$people[$i]['salt'] = rand(000000, 999999);
}
?>

The problem lies in the second for expression. This code can be slow because it has to calculate the size of the array on each iteration. Since the size never change, it can be optimized easily using an intermediate variable to store the size and use in the loop instead of sizeof. The example below illustrates this:

<?php
$people = Array(
Array('name' => 'Kalle', 'salt' => 856412),
Array('name' => 'Pierre', 'salt' => 215863)
);

for($i = 0, $size = sizeof($people); $i < $size; ++$i)
{
$people[$i]['salt'] = rand(000000, 999999);
}
?>

Como sacar beneficios de tu blog Siguiendo con nuestro artículo sobre como conseguir algo de dinero de tu blog de una forma rápida, veremos lo que esta estrategia nos muestra en las s...
Que es el Link bait Link bait (traducido al castellano sería "cebo de enlaces" ) es un término en inglés que hace referencia a cualquier contenido o característica de un ...
El creador de WikiLeaks cree que Facebook es la mayor herramienta de espionaje A través de Alt1040 hemos conocido la existencia de una entrevista que Julian Assange, paladín de WikiLeaks, concedió al Russia Today. En la charla qu...
openSUSE 12.2 Con cerca de un mes de retraso sobre el calendario inicialmente previsto, el equipo de trabajo de esta popular distro liberaba recientemente la última...
mysqli fetch field direct (PHP 5) mysqli_fetch_field_direct, result->fetch_field_direct — Obtiene los metadatos de un campo Descripción Estilo por procedimientos: ...
Google Abandonó Gear por Html5 Google ha anunciado que no trabajara mas en Google Gears. Las razones son es que Google esta mudándose todas sus aplicaciones en la web a HTML5. Otra ...
Del “bloque” al Iphone, como han evolucionado los móviles El teléfono celular se ha convertido en un dispositivo indispensable en la vida de las personas. Los teléfonos móviles han evolucionado con el paso de...
La apertura de tiendas online crece un 20,4% Así lo asegura un estudio realizado por la compañía Arsys, que determina que la creación de nuevas tiendas online se ha disparado un 20,4% este año, g...
Firefox 3.5, listo para descarga Mozilla Firefox 3.5 aparece en el mercado un año después de haber sido lanzada la versión (3.0) que marco un punto de inflexión en su particular carre...
Las marcas mas valiosas y las mas apreciadas en tecnología Las 10 marcas más valiosas 1. Apple 2. Google 3. IBM 4. McDonalds 5. Microsoft 6. Coca-Cola 7. AT&T 8. Marlboro ...