Lenguaje PHP

Foreach en Php: Concepto con ejemplos

Foreach en Php: Concepto con ejemplos. En este artículo hablaremos de foreach que nos permite recorrer cada uno de los elementos de un array con tan solo una variable, su sintaxis es muy sencilla, sin embargo, puede ser de un array dentro de nuestro archivo y/o extraído de una base de datos como MySQL.

El constructor foreach 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. Existen dos sintaxis:

Foreach en Php: Concepto con ejemplos

a) Sintaxis 01

foreach (expresión_array as $valor)
    sentencias

b) Sintaxis 02

foreach (expresión_array as $clave => $valor)
    sentencias

Aqui mostraremos un ejemplo completo

<?php
    $diassemana = array("Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo");

    foreach($diassemana as $dias){
       echo $dias."<br>";
    }

?>

El resultado en el navegador seria el siguiente:

Ahora les explicare un ejemplo de array asociativo

<?php    
     $capitalesamerica = array("Chile"=>"Santiago","Peru"=>"Lima","Ecuador"=>"Quito");
     foreach($capitalesamerica as $capi=>$valores){
            echo "La Capital del Pais de ".$capi." es: ".$valores;
            echo "<br />";
     }
?>

El resultado en el navegador seria lo siguiente:

Array Asociativo con foreach
Array Asociativo con foreach

FOREACH CON BASE DE DATOS MYSQLI

Cuando interactuamos con base de datos el ciclo FOREACH siempre está presente y también los demás ciclos como el While. Por lo tanto, les dejare un ejemplo para manejar Foreach con Base de datos.

Más abajo mostrare un código completo para implementar este ciclo con MySQL. Sin embargo, lo que deseamos realizar es una consulta y utilizar el bucle Foreach para imprimir los valores devueltos de acuerdo a la consulta realizada.

Este bucle es muy peculiar y solo funciona en matrices, se utiliza para recorrer cada par clave  o valor en una matriz para devolver resultados.

<?php
// Llamamos al fichero controlador 
require_once("dbcontroller.php"); 
$db_handle = new DBController();

$sql = "SELECT * from tbl_empleados";
$faq = $db_handle->runQuery($sql);
?>

<table class="table">
  <thead class="thead-dark">
    <tr>
      <th scope="col">#</th>
      <th scope="col">Usuario</th>
      <th scope="col">Cargo</th>
      <th scope="col">Nombres</th>
      <th scope="col">Apellidos</th>
      <th scope="col">Email</th>
    </tr>
  </thead>
  <tbody>
    <?php
// Ejecucion del bucle Foreach con MySQL
foreach($faq as $k=>$v) {
?>
    <tr>
      <th scope="row"><?php echo $k+1; ?></th>
      <td><?php echo $faq[$k]["Usuario"]; ?></td>
      <td><?php echo $faq[$k]["Cargo"]; ?></td>
      <td><?php echo $faq[$k]["Nombres"]; ?></td>
      <td><?php echo $faq[$k]["Apellidos"]; ?></td>
      <td><?php echo $faq[$k]["Email"]; ?></td>
    </tr>
    <?php
}
?>
  </tbody>
</table>

CONCLUSIÓN

Su uso en los proyectos y sistemas web es muy recomendado. Si bien, podemos utilizar otros bucles para devolver resultados de nuestra base de datos. En este ejemplo nos basaremos en el Foreach.

Si bien el ciclo for es muy clásico y el más moderno seria el forEach, de hecho son casi lo mismo. El bucle forEach se inicia como una alternativa más actualizada al clásico for.

Espero que les sirva esta explicación. Saludos y que tengan un excelente día.

Foreach en Php Concepto con ejemplos
Foreach en Php Concepto con ejemplos

Referencia

Foreach

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

2 comentarios

  1. Me cago en la hostia!
    como puedo hacer para que en el caso que uno de los valores a mostrar esté vacío y quisiera saltearlo, como continuo recorriendo el bucle?

    alguien que sepa por favor!

Deja una respuesta

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

Botón volver arriba