Traductor

Bucle foreach

Desde PHP 4 se implementó este tipo de bucle que permite recorrer una matriz de manera más fácil.
El bucle foreach responde al siguiente formato:
foreach($matrix as $clave => $valor){
Cuerpo del bucle;}
Este bucle se repite para cada elemento de la matriz (en inglés las palabras “for each” significan “para cada uno”).
Veamos en el siguiente script como funciona:
<?php
                $ciudades=array("Madrid", "Barcelona", "Londres", "New York", "Los Angeles", "Chicago");
                foreach ($ciudades as $clave => $valor){
                               echo ("La ciudad con el Indice $clave tiene el nombre $valor. <br>");
                }
                echo ("Final de la ejecuci&oacute;n.");
?>
Al cargar el script veremos o siguiente en el navegador:


Como ve no hemos tenido que preocuparnos de incrementar el índice.
El bucle hace un recorrido secuencial sin intervención de una variable específica.
Además en cada iteración se almacenan, en las variables $clave y $valor el índice de la matriz y el índice del correspondiente elemento.
Un variante del ejemplo anterior sería:

<?php
                $ciudades=array("md"=>"Madrid", "ba"=>"Barcelona", "lo"=>"Londres", "ny"=>"New York", "la"=>"Los Angeles", "ch"=>"Chicago");
                foreach ($ciudades as $clave => $valor){
                               echo ("La ciudad con el índice $clave tiene el nombre $valor. <br />");
                }
                echo ("Final de la ejecución.");

?>
Además PHP nos permite anidar bucles foreach para poder recorrer matrices con mas de un índice.
Suponga que usted tiene una matriz con los datos de tres amigos suyos que viven en distintas ciudades. Los datos de cada amigo (nombre, edad y teléfono) constituyen una matriz, cada una de estas matrices es a su vez, un elemento de otra matriz identificada por el nombre de cada ciudad.
Desde luego este no es el sistema mas eficiente para gestionar su agenda, ya que PHP le proporciona una gama de mejores ténicas, pero centrándonos en el valor didáctico de este ejemplo veamos como recorrer completamente una matriz de dos índices de forma útil y práctica

Veamos el siguiente script:
<?php
                $amigos=array("Madrid"=>array("nombre"=>"Pedro", "edad"=>32, "telefono"=>"91-999.99.99"), "Barcelona"=>array("nombre"=>"Susana", "edad"=>34, "telefono"=>"93-000.00.00"), "Toledo"=>array("nombre"=>"Sonia", "edad"=>42, "telefono"=>"925-09.09.09"));
                foreach ($amigos as $ciudad => $cadaUno){
                               echo ("En $ciudad tiene el amigo:<br>");
                               foreach ($cadaUno as $clave => $valor) {
                                               echo ($clave.": ".$valor."<br>");
                               }
                }
                echo ("Final de la ejecución.");

?>
Veamos como se muestra en el navegador:

Paso a Paso

  • Fíjese en el bucle foreach externo
  • Se recorre la matriz principal, llamada $amigos, recuperando el índice de cada elemento (que es el nombre de cada ciudad) en la variable $ciudad.
  • El contenido de cada elemento, que es una matriz con los datos del amigo que vive en esa ciudad, se recupera en $cada Uno.
  • Así pues en cada interacción del bucle externo, $cada Uno contiene una matriz con los datos de una persona.
  • En el bucle interno se recorre esta matriz, recuperando cada dato individual.

Recuerden Comentar Compartir y Darle 
Hasta la Próxima

Si te hemos ayudado : )
Te agradeceríamos que apoyaras este proyecto

0 comentarios:

Publicar un comentario