Cómo recorrer un ARRAY en PHP mediante el bucle FOREACH


En la tienda virtual (e-commerce), que aprendimos a desarrollar en los videos del Curso de PHP y Mysql, guardamos cada producto que ordena el cliente en un array (vector) de productos.

cómo recorrer los elementos de un array php mediante el bucle foreach

Supongamos que el array de productos sería algo así:

$productos[0]="pelota";$productos[1]="paleta";$productos[2]="tobilleras";$productos[3]="bincha";

En este caso sólo tenemos 4 elementos en el array y podemos ver sus valores a simple vista. Pero supongamos que tenemos 1000 elementos, es aquí que necesitamos un método para poder recorrer cada elemento del array y poder procesar sus valores (imprimir en pantalla, consultar valor, hacer comparaciones, etc).

Bucle para recorrer array en php con foreach

Para hacer éste tipo de tareas repetitivas utilizamos los ciclos (o bucles) en php, y en este caso específico utilizamos el bucle FOREACH php que funciona de la siguiente manera:

foreach($productos as $producto){	echo $producto."<br>";}

El resultado sería:

pelota
paleta
tobilleras
bincha

En la 1er iteración del bucle, tendremos el 1er elemento del array guardado en la variable $producto. En la 2da iteración del bucle tendremos guardo el valor del 2do elemento. Y así sucesivamente.

La condición de corte del bucle determina que el bucle funcionará una vez por cada elemento del array. Cuando foreach termina de navegar el último elemento, automáticamente se corta el bucle y continua la ejecución del resto de nuestro programa.

En este caso, sólo mostramos la información pantalla (el objetivo del post es aprender el bucle foreach). Pero en el caso de una tienda virtual, cuando el cliente confirma su compra, necesitaríamos insertar cada elemento del array en una tabla mysql para guardar su órden de compra y que pueda ser visualizada luego por el dueño del negocio.

En los videos del Curso de PHP y Mysql revisamos cómo construir una virtual e-commerce (aprendiendo y aplicando los conceptos básicos de programación PHP). El precio del curso es u$s 50, descarga inmediata y puedes abonarlo mediante Paypal o Tarjeta. Aquí tienes una Prueba GRATIS !!

Supongamos ahora que el dueño del negocio desea ofrecer una promoción especial a aquellos clientes que han comprado el producto “paleta”. Para consultar el valor de cada elemento y saber si ha comprado una paleta podemos recorrer el array en php mediante el bucle foreach :). El código que deberíamos agregar luego del array definido arriba sería:

$ofrecer_promocion=FALSE;foreach($productos as $producto){	if($producto=="paleta"){		$ofrecer_promocion=TRUE;	}}if($ofrecer_promocion){	echo "Aquí imprimiriamos la promoción especial";}

Dentro del ciclo foreach, preguntamos si existe por lo menos algún producto con valor igual a “paleta”. En caso que si, activamos una variable “bandera” ($ofrecer_promocion=TRUE; por defecto se encontraba desactivada). Una vez que FOREACH terminó de revisar todos los productos del array, se corta el bucle y consultamos si la variable bandera se encuentra activa. En caso si, ofrecemos la promoción :)

Si necesitas ayuda con el desarrollo de tu página web puedes escribirme y consultar presupuesto (sin compromiso), ofrezco servicios como programador php freelance.


Nota del autor: Busco programadores y diseñadores freelance para colaborarme con proyectos. Mostrame tus trabajos desarrollados, escribime!


Te agradaría derivar tu proyecto a un programador con años de experiencia?

Ing. Diego Angelini.
Autor de BlogdePHP.com
Programador Web Freelance






Porfolio de proyectos
  • Salva

    Sin ser un experto y estando a punto de echarme una siesta, no sería:

    foreach($productos as $producto){    echo $producto.””;}sin la s en el $producto del echo.Un saludo.

  • http://www.blogdephp.com/ BlogdePhp.com

    Gracias por tu corrección Salva!, se me había pasado en un error de tipeo…
    Ya actualicé el post corregido :)

  • Sebastian Salinas

    Hola diego:
    tengo una consulta como seria la utilización de un bucle con combos y despues obtener dichos valores.
    Por ejemplo yo he utilizado esta forma y no me trae los datos, con el get,request,post. que puede ser?
                    while($fila=mysql_fetch_array($resul)){  
                     echo ”
         
     Aprobado
     Observado 
     Previa 

        “; 
                       
    Te lo agradeceria si me pudieras ayudar

    Seba

  • william gordillo palomera

    Hola me gustaría saber como puedo consumir un web service soap bajo https, ya hice uno con http y todo resulto bien, lo intente con https y me da error, gracias