Para entenderlo rápidamente, por ejemplo, si queremos hacer una tarea un millón de veces. Programando un bucle que podría tener apenas tres lineas podría hacerse.
for
El bucle for ejecuta un número de veces una tarea, por ejemplo:
for($i=1; $i<=1000000; $i++){ // ésto es un comentario que no se ejecuta // porque tiene delante las barras echo $i; }
Éste bucle usa una variable $i que va desde 1 hasta 1000000, saltando de uno en uno. Es decir se ejecuta un millón de veces el echo $i;
En la primera línea podemos ver el valor inicial, hasta cuándo ejecuta el bucle, y de cuánto es el incremento entre vuelta y vuelta del bucle. Éste miniprograma imprimirá «123456789101112131415… así sucesivamente hasta llegar a …9999991000000»
Si tratas de ejecutar éste bucle probablemente no terminará porque un millón de veces es demasiado, saltará un temporizador en el servidor y cortará la ejecución por tardar demasiado.
foreach
El foreach nos sirve para recorrer los vectores o arrays que hemos visto en otro tutorial anterior. Por ejemplo si tenemos un vector como el siguiente:
$vector = array("nombre" => "Pepe", "apellidos" => "Por Ejemplo"); $vector2[0] = "Pepe"; $vector2[1] = "Por Ejemplo"; foreach ($vector as $valor) { echo $valor . ", "; } foreach ($vector2 as $clave => $valor) { echo $clave . " => " . $valor . ", "; }
El primer bucle va a imprimir lo siguiente: Pepe, Por Ejemplo,
El segundo bucle: 0 => Pepe, 1 => Por Ejemplo,
Si nos fijamos en los dos vectores, tenemos en $vector un vector de dos elementos donde la clave nombre almacena Pepe y la clave apellidos almacena Por ejemplo. En el segundo vector tenemos lo mismo en los valores pero las claves, en vez de ser nombre y apellidos son 0 y 1.
Si hubieramos puesto en el segundo bucle en vez del $vector2 al $vector, nos hubiera impreso lo siguiente: nombre => Pepe, apellidos => Por Ejemplo,
while
Supongamos que ahora queremos ejecutar una tarea mientras que se cumpla una condición, papra ésto es es el bucle while. Por ejemplo:
$variable = 1; while($variable < 3){ echo $variable . ", "; $variable++; }
Éste bucle escribirá lo siguiente: 1, 2,
De forma que si la $variable tuviera en un principio el valor 20, no entraría en el bucle y no se ejecutaría nunca lo contenido entre llaves.
do.. while
Si lo que queremos es primero ejecutar una tareas y después comprobar si se cumple una condición para continuar el bucle usamos el do.. while. Al contrario que con el while simple, primero ejecuta lo contenido entre llaves, luego comprueba, ésta es la diferencia. Por ejemplo:
$variable = 3; do { echo $variable . ", "; $variable++; } while($variable < 3);
Éste código escribirá: 3,
Ahora es cuando uno piensa, pero si he puesto que la variable debe ser menor a 3. El problema es que primero ejecuta, como he puesto arriba..
Terminando
A partir de aquí ya empieza la imaginación, podemos poner un bucle dentro de otro, un foreach con varios for dentro o viceversa. Espero haberme explicado bien, sino haz un do.. while(noentender) xDD
O deja un comentario.
Me remito de nuevo, como de costumbre a la documentación oficial:
Si te ha gustado o te ha sido útil dale click a compartir, +1..
¡Un saludo!