PHP for y foreach
En general, en PHP for y foreach se utilizan para recorrer un array. Al igual que while, for y foreach ejecutan un código mientras se cumplan ciertas condiciones.
for
https://blastcoding.com/php-for-y-foreach/#forfor
cuenta con 3 expresiones, la primera que es el valor inicial de la iteración, o sea el valor donde empieza el loop, la segunda que es hasta cuando, el loop se continúa realizando mientras esta sea true
y la 3.ª que es como se hace la iteración si va valor a valor va saltando 2 valores o que hace.
for(expresion1; expresion2; expresion3){ }
hay ocasiones en las que podemos toparnos con código donde no se especifican algunos de estos parámetros. Por ejemplo:
$contador = 0; for (; $contador < 10; ) { // código a ejecutar en cada iteración $contador++; }
Cuerpo del bucle
cuando tenemos nuestro for
todo lo que está entre {
y }
será el cuerpo del bucle y será el código que se ejecutara en cada iteración, de igual manera esto ocurre con while
, do-while
y foreach
bucles infinitos con for
En for
tenemos 2 maneras de crear bucles infinitos, uno es especificar la condición como true y el otro es sin especificar nada:
for (true) { // Este código se ejecutará indefinidamente }bucle for infinito sin especificar inicialización; condición; actualización
for (;;) { // Este código se ejecutará indefinidamente }
foreach
https://blastcoding.com/php-for-y-foreach/#foreachCon foreach
es muy fácil recorrer un array o un objeto y solo funciona con estas dos tipos de variables. si utilizas sobre una variable común nos dará un error E_WARNING
.
foreach($array as $item){ //bloque ejecutado mientra el array tenga miembros por recorrer } foreach($array as $key => $item){ //bloque ejecutado mientra el array tenga miembros por recorrer }
En el segundo caso, $key
será la key en donde estamos parados en la iteración o elemento actual del array.
Cambiando el array
si paso el valor de un elemento por referencia por ejemplo &$value mi array cambiará para siempre.
Sintaxis / Sintaxforeach ($array as &$value) { // Modificar $value modificará el array original }
Comparemos 2 ejemplos para que esto quede entendido
Ejemplo 1$nums = range(1, 5); // Iterar sobre el array con foreach foreach ($nums as $num) { $num= $num+1; echo $num . "\n"; } print_r($nums);
2 3 4 5 6 Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )Ejemplo 2
$nums = range(1, 5); // Iterar sobre el array con foreach foreach ($nums as &$num) { $num= $num+1; echo $num . "\n"; } print_r($nums);
2 3 4 5 6 Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 6 )
Ejemplos de PHP foreach
// Crear un array con los números del 1 al 5 $nums = range(1, 5); // Iterar sobre el array con foreach foreach ($nums as $num) { echo $num . "\n"; }
Veamos un ejemplo utilizando la segunda sintaxis:
$usuario = array( "nombre" => "Juan", "apellido" => "Pérez", "edad" => 30, "email" => "juan.perez@example.com", "telefono" => "123-456-7890" ); // Iterar sobre el array con foreach foreach ($usuario as $clave => $valor) { echo "$clave: $valor\n"; }
nombre: Juan apellido: Pérez edad: 30 email: juan.perez@example.com telefono: 123-456-7890
Tanto como foreach como while se usan mucho para mostrar data traída desde la base de datos. tenga en cuenta que la mayoria de las veces la consulta que hagamos a base de datos la podemos traer como si fuera un array.
En el siguiente link puedes ver un breve resumen acerca de Las Estructuras de Control en PHP