Menu

Bucle for en PHP: sintaxis, arrays, break y continue

for ($i = 0; $i < 10; $i++) { ... } ejecuta un bloque un número fijo de veces: valor inicial, condición comprobada antes de cada vuelta y un paso. Incluye recorrer un array por índice, contar hacia atrás, bucles anidados, break y continue.

Esta página incluye editores ejecutables: edita, ejecuta y ve el resultado al instante.

for ($i = 0; $i < 5; $i++) { ... } ejecuta el bloque un número fijo de veces. Las tres partes son el inicio ($i = 0, se ejecuta una vez), la condición ($i < 5, se comprueba antes de cada vuelta) y el paso ($i++, se ejecuta después de cada vuelta). El bucle termina en cuanto la condición es falsa.

$i sigue existiendo después del bucle y contiene el valor que hizo falsa la condición (6). PHP no tiene ámbito de bloque para las variables de los bucles.

Recorrer un array con un índice

En una lista con claves 0, 1, 2 ..., el contador sirve también de índice. Guarda antes count() en una variable para que no se vuelva a llamar en cada vuelta.

La primera parte puede contener varias expresiones separadas por comas, y así es como $n = count($fruits) se asigna una sola vez. Cuando solo necesitas cada valor (y no sus vecinos), foreach es más corto y también funciona con arrays cuyas claves no van de 0 a n - 1.

Contar hacia atrás y avanzar de más de 1 en 1

El paso puede ser cualquier expresión: $i-- para contar hacia atrás, $i += 2 para uno de cada dos números, $i *= 2 para potencias de dos.

range('a', 'h') construye el array ['a', 'b', ... 'h']. Con range(1, 10) y foreach obtienes el mismo conteo que con un bucle for, a costa de construir antes el array entero.

break y continue

break termina el bucle en el acto. continue se salta el resto de la vuelta actual y salta al paso y a la siguiente comprobación de la condición.

El segundo bucle tiene la condición vacía, lo que significa "siempre verdadera", así que se ejecuta hasta el break. En bucles anidados, break 2 y continue 2 actúan sobre el bucle exterior, como muestra el siguiente ejemplo.

Bucles for anidados: una tabla de multiplicar

Un bucle dentro de otro ejecuta el bucle interior completo en cada vuelta del exterior. Aquí la salida es HTML, así que la pestaña Página muestra una tabla de verdad.

Cambia $size a 12 y vuelve a ejecutarlo. La forma for (...): y endfor; es la sintaxis alternativa que mantiene legibles los bucles entre etiquetas HTML. La misma tabla construida como texto plano, y con break 2 para detener los dos bucles:

Errores frecuentes: el error por uno y el bucle infinito

Los dos bugs clásicos de for: usar <= con count() lee un elemento más allá del final, que PHP indica como Warning: Undefined array key 3 y trata como null; y un paso que nunca acerca el contador al final ($i-- cuando querías $i++) mantiene la condición verdadera para siempre.

Para bucles cuya longitud no puedes saber de antemano, como leer hasta que termine un archivo, encaja mejor un bucle while.

Preguntas frecuentes

¿Cómo recorro un array con un índice en PHP?

En una lista con claves 0, 1, 2 usa for ($i = 0; $i < count($arr); $i++) { echo $arr[$i]; }. En la mayoría del código, foreach ($arr as $i => $value) es más sencillo, da el mismo índice y también funciona cuando las claves no van de 0 a n menos 1.

¿Cómo salgo de un bucle for en PHP?

break; sale del bucle inmediatamente. En bucles anidados, break 2; sale del bucle interior y del que lo rodea. continue; se salta el resto de la vuelta actual y pasa a la siguiente.

¿Cómo cuento hacia atrás con un bucle for en PHP?

Empieza alto, compara con >= y decrementa: for ($i = 10; $i >= 1; $i--) { echo $i; }. Para pasos distintos de uno, cambia la tercera parte, por ejemplo $i += 2 o $i -= 5.

¿Cuándo uso for en lugar de foreach en PHP?

Usa for cuando cuentas algo (repetir 5 veces, números del 1 al 100, uno de cada dos elementos) o necesitas el elemento siguiente o anterior por índice. Usa foreach para visitar cada elemento de un array, sobre todo en arrays asociativos, donde no hay índice numérico.

Ilustración de los lenguajes de programación de Coddy

Aprende a programar con Coddy

COMENZAR