PHP – Utilizando foreach() un bucle para recorrer arreglos y objetos

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 objetofinalizará 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.

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.