Bucles en PHP. Bucle foreach de PHP: dos formas de usarlo Php cuenta doble en un bucle

Es poco probable que pueda escribir un script serio en PHP sin usar bucles. ¿Qué es un ciclo? Este es un tipo especial de estructura de control que le permite ejecutar repetidamente (e incluso sin fin) el mismo código. PHP admite los siguientes bucles:

Es probable que los primeros tres bucles se encuentren en la mayoría de los lenguajes de programación. Los bucles, según las condiciones, se pueden interrumpir o continuar (ir a la siguiente iteración sin ejecutar el cuerpo del bucle). Echemos un vistazo más de cerca a cada uno de los ciclos.

en bucle

La sintaxis de un bucle for es la siguiente.

For(inicialización; condición; commands_after_iteration) (loop_body; )

En el bloque de inicialización, siempre se inicializa el contador, así como otras variables (si es necesario). El bloque de condición indica en qué punto se debe terminar el ciclo. En el bloque de comandos ejecutados después de cada paso del bucle, se suele cambiar el valor del contador, así como otras variables (si es necesario).

// Array de valores $array = array("Manzana", "Patata", "Sandía", "Flor", "Agua", "Mercurio", "Oxígeno", "Trigo", "Rusia", "Moscú "," Ducha"); // La condición del ciclo suena así: hasta que el contador alcance un valor igual al número de // elementos del arreglo, el cuerpo del ciclo se ejecuta para ($i = 0; $i< count($array); $i++) { print "
".($i + 1).". ".$array[$i]."."; ) /* El resultado del bucle será: 1. Manzana. 2. Patata. 3. Sandía. 4. Flor. 5. Agua. 6. Mercurio. 7. Oxígeno 8. Trigo 9. Rusia 10. Moscú 11. Aguacero */

Dado que el contador $i comenzaba en cero, con cada iteración agregamos uno a su valor para que la lista se viera más familiar. Después de cada iteración, el valor del contador aumentaba en uno y cuando llegaba a 11, el bucle se detenía. Ahora echemos un vistazo al bucle do-while.

bucle do-while

El bucle do-while es diferente en el sentido de que funciona en una condición posterior. Esto significa que el código incluido en el cuerpo del bucle se ejecutará al menos una vez. La sintaxis del bucle es:

Do ( loop_body; ) while(condición);

Este bucle rara vez se usa en la programación web, pero es posible que lo necesite en sus scripts.

// La matriz ya nos es familiar $array = array("Manzana", "Patata", "Sandía", "Flor", "Agua", "Mercurio", "Oxígeno", "Trigo", "Rusia", " Moscú", "Aguacero"); // Ejecuta el ciclo $i = 1; hacer (imprimir"
".$i.". ".$matriz[($i - 1)].."; ) while($i++< count($array)); /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

Observe la diferencia entre lo que estamos mostrando en este bucle y el bucle for. Dado que el código en el cuerpo del ciclo do-while se ejecuta al menos una vez, el valor inicial del contador se estableció en cero. Cómo funciona el ciclo... se ejecuta el código, luego se verifica la condición. En la primera iteración, el contador tenía un valor de 1. Después de la iteración, la unidad resultó ser menor que 11 (el número de elementos). En la última iteración, el contador tenía un valor de 11, que no es menos de 11. El ciclo se detuvo. El do-while es muy similar al bucle while.

mientras bucle

El ciclo while es precondicional. Solo se ejecutará cuando su condición sea verdadera. Es decir, es posible que el ciclo while no se ejecute en absoluto. Su sintaxis es:

Mientras (condición) (bucle_cuerpo;)

Junto con el ciclo for, el ciclo while se usa con mucha frecuencia.

$matriz = matriz("Manzana", "Patata", "Sandía", "Flor", "Agua", "Mercurio", "Oxígeno", "Trigo", "Rusia", "Moscú", "Ducha"); $i = 1; mientras ($ i ++<= count($array)) { print "
".$i.". ".$array[($i - 1)].."; ) /* El resultado del bucle será: 1. Manzana. 2. Patata. 3. Sandía. 4. Flor. 5. Agua. 6. Mercurio 7. Oxígeno 8. Trigo 9. Rusia 10. Moscú 11. Aguacero */

El ciclo while para desarrolladores novatos es el más simple y comprensible.

bucle foreach

El bucle foreach es diferente a cualquiera de los anteriores. Apareció en PHP4, diseñado para iterar sobre arreglos. El desarrollador no necesita inventar nada para esto. Todo es fácil y simple:

/** * El bucle foreach debe entenderse como "para cada uno de". * La matriz procesada por el bucle se pasa a una variable a la que solo * se puede acceder dentro del cuerpo del bucle. Si lo desea, puede consultar * y las teclas de matriz. */ foreach(array as array_element) ( loop_body; ) foreach(array as array_key => array_element) ( loop_body; )

El bucle foreach funciona de manera diferente a los bucles for, while y do-while. Por lo tanto, es bastante difícil para los desarrolladores inexpertos comprender qué se puede (e incluso se debe) hacer exactamente con él.

// Cambia la matriz que ya conocemos. Hagámoslo asociativo. $matriz = matriz("Manzana" => "fruta", "Patata" => "verdura", "Sandía" => "baya", "Flor" => "planta", "Agua" => "líquido", "Mercurio" => "metal", "Oxígeno" => "gas", "Trigo" => "pan", "Rusia" => "nuestra Patria", "Moscú" => "la capital de nuestra Patria", "ducha" => "popados"); $i = 1; // Podemos hacer esto foreach($array as $v) (print "
".$i.". ".$v."; $i++; ) /* Obtiene el siguiente resultado inesperado: 1. fruta. 2. verdura. 3. baya. 4. planta. 5. líquido. 6. metal. 7. gas. 8. pan 9. nuestra patria 10. la capital de nuestra patria 11. popados */ // Y ahora hagámoslo diferente foreach($array as $k => $v) ( print "
".$i.". ".$k." es ".$v."; $i++; ) /* Ahora el resultado será 1. La manzana es una fruta. 2. La papa es una verdura. 3. La sandía es una baya. 4. La flor es una planta. 5 El agua es un líquido 6 El mercurio es un metal 7 El oxígeno es un gas 8 El trigo es el pan 9 Rusia es nuestra Patria 10 Moscú es la capital de nuestra Patria 11 La lluvia es una lluvia */

¿Entiendes cómo funciona este ciclo? Si no, puede hacer una pregunta en los comentarios al material.

En cualquier ciclo, puedes usar las construcciones descanso o Seguir. A veces, no tiene sentido continuar con el bucle o es necesario pasar a la siguiente iteración.

$matriz = matriz("Manzana" => "fruta", "Patata" => "verdura", "Sandía" => "baya", "Flor" => "planta", "Agua" => "líquido", "Mercurio" => "metal", "Oxígeno" => "gas", "Trigo" => "pan", "Rusia" => "nuestra Patria", "Moscú" => "la capital de nuestra Patria", "ducha" => "popados"); $i = 1; // Un ejemplo de cómo funciona el bucle con continue foreach($array as $k => $v) ( if($k != "Oxygen") continue; print "
".$i.". ".$k". es ".$v."; $i++; ) /* El resultado será 1. El oxígeno es un gas. */ $i = 1; // Un ejemplo de cómo funciona el ciclo con el break foreach($array as $ k = > $v) ( if($k == "Oxígeno") romper; imprimir "
".$i.". ".$k". es ".$v."; $i++; ) /* El resultado será 1. Una manzana es una fruta. 2. Una papa es una verdura. 3. Una sandía es una baya. 4. Una flor es una planta. 5. El agua es un líquido 6. El mercurio es un metal */

La nota: se activa la versión adaptativa del sitio, que se ajusta automáticamente al tamaño pequeño de su navegador y oculta algunos detalles del sitio para facilitar la lectura. ¡Disfruto ver!

¡Hola queridos lectores y suscriptores habituales! Es hora de continuar con el ciclo de artículos sobre PHP y hoy estudiaremos algo tan básico ya la vez muy importante como son los ciclos. ¿Qué necesitas saber primero sobre los ciclos? Y el hecho de que se usen en todas partes y en todas partes, y las plantillas para Joomla, VirtueMart, Wordpress, OpenCart y cualquier otro CMS no es una excepción.

¿Qué es un ciclo? Ciclo es la repetición repetida de la misma pieza de código. La cantidad de repeticiones que debe hacer depende del contador de ciclos, que creamos nosotros mismos y podemos controlar. Esto es muy conveniente, por ejemplo, cuando necesitamos dibujar productos en la categoría de una tienda en línea, mostrar publicaciones de blog, mostrar comentarios sobre un artículo o producto, todos los menús en CMS (motores de sitios) también se realizan mediante ciclos. En general, los bucles se utilizan con mucha frecuencia.

Pero antes de pasar a los bucles en sí, primero tenemos que tratar con algo como declaraciones incremento y decremento.

El operador ++ (incremento) aumenta el valor de una variable en uno, mientras que el operador -- (decremento) disminuye el valor de una variable en uno. Son muy convenientes para usar en ciclos como contador, y en programación en general. También hay un incremento/decremento PRE y un incremento/decremento POST:

PRE incremento/decremento ++$a Incrementa $a en uno y devuelve el valor de $a. --$a Disminuye $a en uno y devuelve el valor de $a. POST increment/decrement $a++ Devuelve el valor de $a y luego incrementa $a en uno. $a: devuelve el valor de $a y luego disminuye $a en uno.

Por ejemplo:

$a = 1; echo "Número de salida: ". $a++; // Número de salida: 1 echo " Número de salida: " . $a; // Número de salida: 2 echo "Número de salida: $a"; $a += 1; // igual que la primera linea$a = 1; echo "Número de salida: ". ++$a; // Número de salida: 2 echo "Número de salida: " . $a; // Número de salida: 2 $a += 1; echo "Número de salida: $a"; // lo mismo que en la primera línea de este bloque

en bucle

for (parte A; parte B; parte C)( // Cualquier código, tantas líneas como quieras; )

El bucle for consta de 3 partes y el propio cuerpo. Parte A simplemente hace lo que dice, como regla, en el 90% de los casos se crea un contador de bucle allí. Parte B- esto es, en términos generales, ya familiar para nosotros si, es decir, una prueba de verdad (¿verdad?). Si la condición es verdadera, eso es verdadero, luego PHP entra en el ciclo y continúa ejecutándolo. Parte C- lo mismo que la parte A, generalmente en la parte C hacemos algún tipo de transformación con el contador. Por ejemplo:

"; ) echo "SALIR DEL BUCLE y continuar con el código..."; ?>

Ahora sobre el algoritmo del bucle for. Lo primero que ve PHP cuando busca es la parte A y la ejecuta una sola vez (vea la imagen a continuación). PHP luego salta a la parte B y verifica si es verdadero o falso. Si es verdadero, entonces ejecuta el cuerpo del bucle y solo después de eso va a la parte C. Después de eso, PHP vuelve a la parte B y verifica si todavía es verdadero o ya no está allí. Si no, entonces el ciclo termina, si es así, continúa hasta que la parte B es falsa.

El resultado del ejemplo anterior:

mientras bucle

while (parte B)( // Cualquier código, tantas líneas como quieras; )

Como puede ver, no hay parte A y parte C, solo queda la condición del ciclo for, es decir, la parte B. Si necesitamos usar un contador, entonces debemos colocarlo dentro del ciclo while, entre el resto del código, esta será la parte C. Y se necesita crear el contador antes del inicio de la construcción while:

Parte A; while (parte B)( // Cualquier código, tantas líneas como quieras; Parte C; )

Cambiemos el bucle for anterior por un bucle while:

"; $i++; ) echo "SALIR DEL BUCLE y continuar con el código..."; ?>

El resultado será exactamente el mismo. Qué usar: un bucle for o un bucle while es cuestión de gustos, mira el que te resulte más cómodo y lógico, no hay diferencia.

hacer... mientras bucle

Menos común de todos los tipos de ciclos. Es esencialmente un tiempo invertido. Su truco es que PHP al menos una vez (la primera), pero definitivamente irá al cuerpo del bucle do... while, porque en este bucle la condición al final:

Parte A; do( // Cualquier código, tantas líneas como quieras; Parte C; )while(Parte B);

"; $i++; )mientras ($i< 8); echo "ВЫШЛИ ИЗ ЦИКЛА и пошли дальше по коду..."; ?>

Es importante entender que no hay partes obligatorias en los tres tipos de ciclos.

Un ejemplo de un ciclo for sin la parte A y la parte C:

For(;$i > 8;)( // tu código)

Un ejemplo de un bucle for sin las tres partes:

For(;;)( // bucle infinito clásico)

Es decir, todos los puntos y comas aún permanecen en el ciclo for, ¡esta es la sintaxis!

Bucles sin fin

Un bucle infinito es un error del desarrollador en el que la página nunca podrá cargar hasta el final, ya que la condición del bucle (parte B) siempre será verdadera. Por ejemplo:

"; $i++; )while($i != 0); echo "SALIR DEL BUCLE y avanzar por el código..."; ?>

Resultado:

Mostré sólo una parte, porque no cabe todo en la pantalla. Así es como su navegador y el servidor de su sitio sufrirán sin cesar hasta que el navegador se bloquee después de 30 segundos Esto se debe a que en el ejemplo anterior, la variable $i nunca será igual a cero, inicialmente es igual a 1 y aumenta constantemente.

Es decir, el desarrollador no estuvo atento cuando se le ocurrió tal condición.

Gestión del ciclo

declaración de ruptura. Hay situaciones en las que no necesitamos el bucle para reproducir todas las iteraciones (repeticiones). Por ejemplo, en algún momento determinado queremos interrumpirlo y continuar la ejecución debajo del código:

"; if ($i === 5) break; // sale del bucle si $i es igual a 5 $i++; ) echo "Solo puedo contar hasta 5:("; ?>

Resultado:

En el ejemplo anterior, tan pronto como llegamos a cinco, PHP salió del bucle; de ​​lo contrario, habría contado hasta 7.

continuar declaración también interrumpe la ejecución del bucle, pero a diferencia de break, continue no sale del bucle, sino que devuelve al intérprete de PHP a la condición (a la parte B). Ejemplo:

"; ) echo "¿Te perdiste algo?"; ?>

Resultado:

Nos saltamos el 5 porque PHP no llegó al eco.

Un bucle se puede anidar dentro de un bucle. En tal caso, las declaraciones de continuar y romper solo cubren un ciclo, en el que se encuentran. Es decir, en otras palabras, se arrojan a un nivel, y no a través de todos. Ejemplo:

Pero nosotros mismos podemos elegir cuántos niveles saltar:

"; $i++; $i=1; $k=1; mientras ($k< 8) { echo "Итерация $k номер ". $k . "
"; si ($k === 5) romper 2; $k++; ) ) ?>

Resultado:

Naturalmente, en este caso, no podemos establecer un número mayor que nuestros bucles anidados.

bucle foreach

Por último, pero no menos importante, el bucle foreach es el más importante. usó solo para la enumeración y los objetos (es demasiado pronto para aprenderlos). Ejemplo de sintaxis:

"; } ?>

Resultado:

Esta fue una construcción breve de foreach, pero también tiene una versión extendida que, además del valor de las celdas de la matriz, también muestra los nombres de las celdas (claves):

$valor) ( echo "En la sección " . $clave . " hay un articulo titulado: ". $valor . "
"; } ?>

Resultado:

Llamo su atención sobre el hecho de que podemos nombrar las variables como queramos, incluso $clave y $valor, incluso $xxx y $yyy.

Si es una matriz, entonces usamos solo el bucle foreach y ningún otro. Es este ciclo el que se usa en todas partes en VirtueMart, y de hecho en todas partes.

Última actualización: 1.11.2015

PHP, al igual que otros lenguajes de programación, utiliza bucles para realizar acciones repetitivas. PHP tiene los siguientes tipos de bucles:

en bucle

El bucle for tiene la siguiente definición formal:

For ([inicialización de contador]; [condición]; [cambio de contador]) ( // acciones )

Considere un bucle for estándar:

"; } ?>

La primera parte de la declaración del ciclo - $i = 1 - crea e inicializa el contador - la variable $i. Y antes de que se ejecute el ciclo, su valor será igual a 1. En esencia, esto es lo mismo que declarar una variable.

La segunda parte es la condición bajo la cual se ejecutará el bucle. En este caso, el bucle se ejecutará hasta que $i llegue a 10.

La tercera parte es incrementar el contador en uno. Nuevamente, no necesitamos aumentar en uno. Puede disminuir: $i--.

Como resultado, el bloque de bucle se ejecutará 9 veces hasta que el valor de $i sea igual a 10. Y cada vez que este valor aumente en 1. Cada repetición separada del bucle se denomina iteración. Así, en este caso, se producirán 9 iteraciones.

mientras bucle

El bucle while comprueba la veracidad de alguna condición y, si la condición es verdadera, se ejecuta el bloque de expresión del bucle:

"; $contador++; ) ?>

Si solo hay una declaración en el bloque while, entonces se pueden omitir las llaves del bloque:

"; ?>

bucle do..while

El bucle do..while es similar al bucle while, solo que ahora se ejecuta el bloque de bucle y solo entonces se verifica la condición. Es decir, incluso si la condición es falsa, el bloque de bucle se ejecutará al menos una vez:

"; $contador++; ) while($contador<10) ?>

continuar y romper declaraciones

A veces surge una situación en la que desea salir del ciclo sin esperar a que se complete. En este caso, podemos usar la instrucción break:

80) ( break; ) echo "El cuadrado de $i es $resultado
"; } ?>

Y si de repente el resultado de la operación resulta ser más de 80, entonces el ciclo sale.

La declaración de continuación también se usa para controlar bucles. Salta a la siguiente iteración del ciclo:

"; } ?>

Cuando se ejecuta el programa, cuando el valor de $i se vuelve igual a 5, se producirá la transición a la siguiente iteración y todas las demás expresiones que siguen después de la instrucción continuar no se ejecutarán.

El bucle for es uno de los bucles más utilizados en cualquier lenguaje de programación. En este artículo, veremos más de cerca el bucle for de PHP.

para declaración de bucle en PHP

El ciclo for en PHP ejecuta un bloque de código una cierta cantidad de veces según un conteo. En este caso, el número de veces que se debe ejecutar el bloque de código se determina de antemano antes de ingresar al cuerpo del ciclo.

for es uno de los tipos de bucle más complejos. En PHP, el ciclo for se comporta de manera similar a C. La siguiente es la estructura de la sintaxis:

for(expresión1;expresión2;expresión3) declaración;

En la descripción anterior palabra clave para puntos a un bucle. Los paréntesis definen expresiones y luego la declaración a ejecutar.

¿Cómo funciona un bucle for en PHP?

Para entender cómo funciona el ciclo for, necesitamos entender estas tres expresiones. Expresión: expresión1 es la primera, que se ejecuta una sola vez antes de entrar en el bucle. Se lleva a cabo incondicionalmente. Esto significa que la primera vez antes de entrar en el bucle, se ejecutará la expresión.

Expression1 se denomina expresión de inicialización porque se usa para inicializar el contador que se usa en expression2 y expression3 .

expresión2( verificación de condición) se comprueba para determinar si la condición permite que la declaración se ejecute o no. La primera vez que se ejecuta después de expression1, luego antes de ingresar al bucle.

Por lo general, expression2 contiene una declaración condicional para verificar si la condición devuelve verdadero o falso. Si la condición devuelve verdadero, entonces se ejecutará la declaración escrita en el bucle.

Expression3 se ejecuta al final de cada iteración después de la declaración de bucle. Por lo general, los programadores se refieren a ella como una expresión de incremento. Usan esta expresión para incrementar el valor de un contador que se inicializó en expresión1 y se analizó en expresión2.

Las tres expresiones son opcionales. También puede crear un bucle PHP como el siguiente:

para (;;) declaración;

for(;expresión2;expresión3) declaración;

Si tenemos varias líneas en un bucle for, use llaves como se muestra a continuación:

for(expresión1;expresión2;expresión3)(instrucción1; instrucción2; instrucción3; )

para diagrama de flujo de bucle

En el primer paso, se ejecuta expresión1. Si observa cuidadosamente el diagrama de flujo, encontrará que no hay condición para la expresión1. expresión1 es como el flujo de un programa que se está ejecutando.

En el siguiente paso, inmediatamente después de expresión1, se ejecuta expresión2. Comprueba si la condición del bucle es verdadera. Si la condición es verdadera, el ciclo continuará ejecutándose; de ​​lo contrario, el subproceso saldrá del ciclo.

Si expresión2 devuelve verdadero, entonces el tercer paso ejecutará la instrucción escrita en el bucle for. Después de eso, se ejecutará la tercera expresión expresión3.

Después de que se ejecuta expresión3, el subproceso vuelve a comprobar expresión2 y el ciclo continúa hasta que expresión2 devuelve false .

Un ejemplo simple de un bucle for en PHP

Considere el caso en el que necesita mostrar números del 1 al 10 separados por comas. A continuación se muestra el código:

para ($ i = 1; $ i<=10;$i++) print $i.",";

O con una llave:

para ($ i = 1; $ i<=10;$i++) { print $i.","; }

La expresión $i=1 es expresión1 , que se evalúa incondicionalmente. Usamos expression1 para inicializar la variable a $i=1 .

Expression2 es la expresión $i:

$i=1; para(;$i<=10;$i++) { print $i.","; }

$i=1; para(;$i<=10;) { print $i.","; $i++; }

Expresión compleja en un bucle for

Puedes escribir tres expresiones en un bucle for. Podemos escribir varias declaraciones en cada expresión en un bucle for. Los operadores deben estar separados por una coma.

Considere el ejemplo del código anterior para generar un número del 1 al 10. Con múltiples operadores en una expresión, puede escribir el siguiente código:

para ($i=1; $i<=10; print $i . ",", $i++);

Aquí, expression3 es print $i.',', $i++ , que combina dos declaraciones, una es print $i. ‘,’ y ​​el segundo es $i++.

Arriba hay un ejemplo en el que usamos múltiples operadores en expression3 . Pero también es posible usar múltiples operadores en cualquier expresión. Por ejemplo:

Del mismo modo, puede imprimir todos los números impares menores que 10 con el siguiente código:

Matriz y bucle for en PHP

Con el bucle for de PHP, puede iterar a través de una matriz. Por ejemplo, tenemos una matriz que contiene los nombres de diferentes personas. Necesitamos mostrar todos los nombres:

$nombres = array("Ankur", "Juan", "Alegría"); $cuenta = cuenta($nombres); for($contador=0;$contador<$count;$counter++){ print $names[$counter]; }

También puede usar una matriz multidimensional en un bucle for:

$nombres = matriz(matriz("id" => 1, "nombre" => "Ankur"), matriz("id" => 2, "nombre" => "Joe"), matriz("id" => 3, "nombre" => "Juan");); $cuenta = cuenta($nombres); for ($contador = 0; $contador< $count; $counter++) { print "Name".$names[$counter]["name"]." ID".$names[$counter]["id"]."n"; }

Bucle for anidado

Puede usar un bucle for anidado en PHP. Ejemplo:

$metrix = arreglo(arreglo(1, 2, 3), arreglo(2, 1, 3), arreglo(3, 2, 1),); $cuenta = cuenta($metrix); for ($contador = 0; $contador< $count; $counter++) { $c_count = count($metrix[$counter]); for ($child = 0; $child < $c_count; $child++) { echo $metrix[$counter][$child]; } }

Tenemos una matriz multidimensional y usamos dos PHP para bucles para mostrar los valores de sus elementos.

Al usar un bucle anidado, puede usar la expresión de bucle for del padre en el hijo. Por ejemplo:

para ($i = 1; $i<= 5; $i++) { for ($j = 1; $j <= $i; $j++) { echo "*"; } echo "
"; }

El programa anterior es uno de los más populares para generar el carácter * en forma de triángulo rectángulo.

Incremento en un bucle for

En casi todos los ejemplos anteriores, hemos usado expresión3, que es la última expresión, como instrucción de incremento. Además, a menudo incrementamos el valor en uno en todos los ejemplos, como $i++ o $j++, etc. Pero podemos aumentar el contador según nuestros requisitos. Por ejemplo, para imprimir todos los números impares del 1 al 15, puede inicializar el bucle en 1 e iterar hasta 15, incrementando el contador en 2:

for($contador = 1; $contador<=15;$counter=$counter+2){ print $counter.","; }

La salida del código anterior será " 1,3,5,7,9,11,13,15 ". Aquí incrementamos la variable contador en +2 usando la expresión $contador=$contador+2.

Salir del bucle for

Puede romper un ciclo bajo ciertas condiciones usando la palabra clave break. No es parte de un bucle y se usa para interrumpir la ejecución de las sentencias for, foreach, while, do-while y switch. Veamos cómo la palabra clave break detiene el bucle for.

Un ejemplo simple donde generamos todos los números en una matriz hasta 100:

$serie = matriz(1, 8, 5, 3, 100, 9, 7); for ($i = 0, $conteo = conteo($serie); $i<= $count; $i++) { if (100 == $series[$i]) { break; } echo $series[$i] . " "; }

Aquí rompemos el bucle comprobando si el valor del elemento de la matriz es igual a 100.

También puede dividir un bucle PHP anidado a través de una matriz pasando una profundidad, como break 1 , break 2 , etc. Vea el ejemplo a continuación:

for ($i = 0;; $i++) ( switch ($i) ( case 1: echo "Este es uno "; break 1; //Esto solo romperá la sentencia switch case 2: echo "Esto es dos "; break 1 ; // Esto de nuevo solo interrumpirá el caso 3 de la declaración de cambio: echo "Esto es tres "; break 2; // Esto interrumpirá tanto el cambio como el bucle for) )

Aquí, break 1 romperá la declaración de cambio, pero break 2 romperá la declaración actual así como la declaración principal, es decir, tanto switch como for .

Usando continuar en un bucle for

En la sección anterior, aprendimos cómo salir de un bucle. Pero, ¿qué sucede si desea omitir una iteración del ciclo y volver al ciclo? Para hacer esto, PHP tiene la palabra clave continuar.

Recuerde el ejemplo de mostrar números impares. Todo lo que hicimos fue iniciar el ciclo en 1, incrementar el contador en 2 y mostrar el resultado. Implementemos este ejemplo usando continue :

para ($i = 0; $i< 20; $i++) { if ($i % 2 == 0) { continue; } echo $i . ","; }

En el ejemplo anterior, probamos la expresión $i%2 == 0 y, si es verdadera, usamos la palabra clave continue, omitimos el resto del bucle y volvemos a expresión3 ($i++) y luego a expresión2 ($i :

A veces, necesita transferir datos de una tabla de base de datos a una matriz usando PHP.

El ciclo foreach de PHP se puede usar así:

foreach($array_name as $value)( //código a ejecutar)

foreach($array_name as $key =>$value)( // //código a ejecutar)

Un ejemplo del uso de un bucle foreach con una matriz numérica

En este ejemplo, crearemos una matriz de cinco elementos con valores numéricos. El bucle foreach de PHP se usará para iterar a través de esa matriz. Dentro del ciclo foreach, usamos echo para imprimir los valores de la matriz:

Ver demostración y código

Ejemplo con claves de matriz y valores

Este ejemplo describe otra forma de usar el bucle foreach de PHP. Para hacer esto, creamos una matriz asociativa de tres elementos. Incluye los nombres de los empleados ( como llaves) y salarios ( como valores):

Ver demostración y código

Un ejemplo de cómo cambiar el valor de un elemento de matriz en un bucle foreach

También puede usar la matriz foreach de PHP para cambiar los valores de los elementos de la matriz. Esto se hace usando "&" antes de "$" para la variable de valor. Por ejemplo:

&$valor_de_elemento

Se cambiará el valor. Para hacerlo más claro, considere el siguiente ejemplo.

En este ejemplo, hemos creado una matriz numérica con cinco elementos. Después de eso, se utilizó un bucle foreach para mostrar los valores de los elementos.

Luego creamos otro ciclo foreach, donde se agrega "&" antes de $value_of_element . Dentro de las llaves, asignamos nuevos valores a los elementos de la matriz.

Para ver la diferencia antes y después de que se asignen los nuevos valores, la matriz se muestra mediante la función print_r().

Ver demostración y código

¿Para qué se utiliza el bucle foreach de PHP?

El bucle foreach de PHP se utiliza para operar en una matriz. Itera sobre cada uno de sus elementos.

También puede usar un bucle for para trabajar con arreglos. Por ejemplo, usar la propiedad de longitud para obtener la longitud de una matriz y luego aplicarla como el operador máximo. Pero foreach lo hace más fácil porque está diseñado para funcionar con arreglos.

Si está trabajando con MySQL, este ciclo es aún más adecuado para esto. Por ejemplo, puede seleccionar varias filas de una tabla de base de datos y pasarlas a una matriz. Después de eso, usando el ciclo foreach, itere a través de todos los elementos de la matriz, realizando alguna acción.

Tenga en cuenta que puede usar el bucle foreach con una matriz o solo con un objeto.

Usando un bucle foreach

En PHP, hay dos formas de usar el ciclo foreach de PHP. Ambos se describen a continuación.

  • La sintaxis para el primer método de uso es:

foreach($array_name as $valor)( echo $valor )

En este caso, debe especificar el nombre de la matriz y luego la variable $value .

Para cada iteración, el valor del elemento actual se asigna a la variable $value. Una vez completada la iteración, a la variable se le asigna el valor del siguiente elemento. Y así sucesivamente hasta que se hayan iterado todos los elementos del arreglo.

  • Sintaxis del segundo método ( PHP foreach como valor clave):

Esto es adecuado para matrices asociativas que usan pares clave/valor.

Durante cada iteración, el valor del elemento actual se asignará a la variable $value_of_element. Además, la clave del elemento se asigna a la variable $key_of_element.

Si está trabajando con matrices numéricas, puede usar el primer método, que no requiere claves de elementos.

Esta publicación es una traducción del artículo " PHP foreach loop 2 formas de usarlo» preparado por un equipo de proyecto amistoso