Arrays en PHP: Recorrer un array con el bucle foreach

PHP proporciona un bucle específico para recorrer los arrays, sobre todo los asociativos, y es el bucle foreach. Usándolo, recorres uno a uno los elementos de un array pudiendo hacer las acciones que desees con cada uno.

El bucle comienza con el primer elemento del array y finaliza con el último sin necesidad de saber cuántos elementos tiene. Un ejemplo de uso

Cuando PHP se encuentra la declaración foreach, toma el primer elemento del array y lo asigna a la variable seguida de la palabra clave as, $elemento. Cuando vuelve al inicio, vuelve asignar a la variable $elemento el siguiente elemento del array y así hasta terminar de recorrer el array.

Recorrer un array asociativo

El array asociativo es aquel que no precisa de índices numéricos. En caso del array asociativo el funcionamiento es similar pero, podemos hacer referencia tanto al nombre del índice como al valor que contiene.

En esta ocasión, cada pareja índice-valor se guardan en las variables $indice y $descripcion respectivamente. Luego se imprimen por pantalla quedando el siguiente resultado

producto: Bolígrafo azul
marca: Bic
laser: Laser Printer
precio: 0.75€
referencia: 552BIC12

Poder referenciar un índice puede ayudar a la hora de usar condicionales con datos que se saquen de la base datos.

Método alternativo al foreach

Una alternativa a la sintáxis de foreach, aunque un poco más complicada, es emplear la función list() junto la función each() en un bucle while.

En un bucle while, se continúa ejecutando hasta que la condición que contenga devuelve un FALSE. En este ejemplo, un bucle while se ejecuta mientras la función each() no devuelva FALSE. Lo que hace la función each es devolver la pareja índice-valor de un array, en este caso de $producto, y mover el puntero que está dentro del array al siguiente elemento. Cuando no haya más elementos devuelve un FALSE.

La función list() lo que hace es tomar un array como argumento, que en este caso sería el índice-valor que devolvería la función each(). Luego asigna los valores del array a las variables listada dentro del paréntesis. Básicamente, asgina a las variables que tengamos dentro del paréntesis los valores de un array siguiendo un orden. Por ejemplo

Esto devolvería

Valor1=Tinta Valor2=Lápiz

En caso de ser un array con más elementos, habría que meter dentro de list tantas variables como elementos tenga el array.

Y hasta aquí recorrer un array con foreach, espero que os sea de ayuda. A seguir picando 🙂