Entendiendo el foreach en PHP

Soy de letras. Este asunto de la programación me entra solo con sangre, así que puedo decir sin ningún tipo de vergüenza que me tomó mi tiempo saber qué narices era un foreach en PHP. A veces, te sueltan toda esa teoría de lo que es una condicional if/else o que es un for, un while o un foreach, pero de ahí a buscarle una aplicación en el mundo real va un trecho.

En este artículo, intentaré explicar con un ejemplo real cómo se utiliza un foreach y en qué momentos puede venirnos de perlas.

Una vez leí que, en programación, cuando repites más de una vez un código, es que estás haciendo algo más. La redundancia, en la mayor parte de los casos, puede combatirse con programación. Seguro que algún tipo de loop o función puede ayudarnos a que un código que, a veces, ocupa cientos de líneas, se desarrolle en unas cuantas. ¿Y qué me decís de la satisfacción que da eso?

¿Qué es un foreach?

El manual de php nos dice que el foreach es un constructor que «proporciona un modo sencillo de iterar sobre arrays. foreach funciona sólo sobre arrays y objetos, y emitirá un error al intentar usarlo con una variable de un tipo diferente de datos o una variable no inicializada». También dice que hay dos maneras de utilizarlo en cuanto a la sintaxis:

Un ejemplo práctico

Imaginad que tenemos una galería conformada de fotografías que queremos filtrar por categorías. Cuando cargue, deberá mostrar todos los elementos, sin discriminar por categorías; sin embargo, por medio de una serie de botones en la parte superior, podremos fácilmente filtrar por categorías que serán tres: animales, paisajes y personas.

Supongo que habría muchas formas de hacerlo. Estoy segura de que a cada uno se nos ocurriría llevar a cabo el proyecto con diferentes lenguajes y técnicas. Sin embargo, supongamos que lo hacemos mediante javascript, y que el query que mostrará cada una de las fotografías por categorías, aparecerá o desaparecerá según dispongamos. Lo que identificará cada uno de los divs contenedores será la class que tengan.

De una manera muy poco fina y masiva, este sería nuestro código:

¿Mucha redundancia, verdad? Al fin y al cabo, repetimos el mismo código cuatro veces y solo cambiamos dos datos en cada parte. Todo esto puede solucionarse utilizando foreach. En primer lugar, crearemos una array:

Podríamos simplificar mucho más la array, pero la haremos así como ejemplo. La estructura básica de este array sería:

Por lo tanto, podríamos crear este tipo de foreach:

La diferencia es notable, ¿verdad? Básicamente lo que hemos hecho es sustituir las partes que cambiaban por $key y $value, que según en el momento del loop del foreach en el que se encuentren, tendrán un valor u otro. Ni más ni menos que el que marca el array. ¡Facilísimo!

 


Concha Alviz

Me llamo Concha Alviz y llevo, en esto del Diseño y de la Comunicación, más de una década. Licenciada en Publicidad y Relaciones Públicas, empecé mi carrera profesional como diseñadora gráfica en el campo de la Publicidad y el Marketing para, más adelante, especializarme en diseño web y en desarrollo de front-ends.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.