Con la función de PHP foreach() podemos recorrer los diferentes tipos de arrays y objetos de una manera controlada. A continuación veremos algunos ejemplos de esta estructura de control.
Sintaxis PHP foreach()
Vamos a ver las dos opciones de sintaxis que tiene esta función según su web oficial:
foreach (expresion as $value) { //acciones }
En esta primera sintaxis el bucle asigna a la variable $value el valor del elemento actual que está recorriendo en ese momento, en la siguiente iteración devolverá el siguiente valor.
Segunda opción:
foreach (expresion as clave=>$value) { //acciones }
Esta vez el bucle el valor se asocia a una clave (nombre de campo), podemos llamarlo ‘array asociativo‘.
En ambos casos el bucle siempre comienza por el primer elemento del array u objeto y finalizará al terminar de procesar el último elemento.
Ejemplo de PHP foreach con los arrays $_POST y $_GET
En las líneas superiores se colocó el código del formulario con método POST con sus 2 campos de tipo text que se usan en el ejemplo.
if($_POST) { foreach ($_POST as $clave=>$valor) { echo "El valor de ".$clave." es: ".$valor; } }
- Primero pregunto si el array $_POST tiene valores o está vacío.
- En caso de tener valores, recorro todos los valores y asigno a la variable ‘clave’ el valor enviado.
- En la variable $clave se guarda el nombre del input, y en la variable $valor el valor del campo enviado.
Ahora se coloca el código para recoger los valores del mismo formulario pero con método GET:
Ejemplo de PHP foreach() para recorrer arrays
A continuación vemos otro ejemplo del uso de foreach para recorrer arreglos.
$equipo = array(portero=>'Memo Ochoa', defensa=>'Rafael Márquez', medio=>'Giovani Dos Santos', delantero=>'Chicharito Hernández'); foreach($equipo as $posicion=>$jugador) { echo "El " . $posicion . " es " . $jugador; echo "<br/>"; }
Ejemplo de PHP foreach() para recorrer, leer y pasar un XML
Vamos a ver cómo se puede leer un xml con la función PHP foreach(), imaginemos que el XML tiene esta estructura:
<?xml version='1.0' encoding='UTF-8'?> <colores> <color> <nombre>Negro</nombre> <codigo_hexadecimal>000000</codigo_hexadecimal> </color> <color> <nombre>Blanco</nombre> <codigo_hexadecimal>ffffff</codigo_hexadecimal> </color> </colores>
El XML contiene información de 2 colores y sus códigos hexadecimales, el código PHP necesario para leer dicha información sería el siguiente:
- En la variable $xml se guarda la estructura del XML a través de la función PHP simplexml_load_file().
- Después se recorre el XML y se va guardando en la variable $color los tags de cada color.
- Por último imprimo los valores de cada color.
Espero que el uso de foreach() en php para recorrer los arreglos haya quedado bastante claro, puedes siempre volver a leer esta entrada o investigar más a fondo por tu cuenta.