¿Cómo determinar la primera y la última iteración en un bucle foreach?
La pregunta es sencilla. Tengo un bucle foreach
en mi código:
foreach($array as $element) {
//code
}
En este bucle, quiero reaccionar de manera diferente cuando estamos en la primera o última iteración.
¿Cómo hacer esto?
464
3
Podrías usar un contador:
Podrías eliminar el primer y el último elemento de la matriz y procesarlos por separado.
Así:
Quitando todo el formato a CSS en lugar de etiquetas inline mejoraría tu código y aceleraría el tiempo de carga.
También podrías evitar mezclar el HTML con la lógica de php siempre que sea posible.
Tu página podría ser mucho más legible y mantenible separando las cosas así:
1: ¿Por qué no utilizar una simple sentencia
for
? Asumiendo que estás usando un array real y no unIterator
podrías comprobar fácilmente si la variable contador es 0 o uno menos que el número entero de elementos. En mi opinión esta es la solución más limpia y comprensible...2: Deberías considerar el uso de Conjuntos Anidados para almacenar tu estructura de árbol. Además puedes mejorar el conjunto utilizando funciones recursivas.