No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Ciclo foreach

12/25
Recursos

Aportes 22

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Ejemplo graficó de como funciona
Continue

Break

En lo personal me parece que foreach está bastante bueno para hacer búsquedas secuenciales. Suponiendo que la lista de cafés es muy larga podríamos programar un buscador sencillo algo así:

<?php

    $cafes=array(
        "Capuccino"=>50,
        "Latte"=>45,
        "Americano"=>40,
        "Te chai"=>45
    );

    echo "\n\t Lista de cafés y precios:";
    foreach($cafes as $tipo => $costo){
        echo "\n\t El café $tipo cuesta: $$costo";
    }
    
    $cafe=readline("\nEscribe un cafe para buscarlo: ");

    foreach($cafes as $tipo => $costo){
        if($tipo == $cafe){
            echo "\n\t Café tipo: $tipo encontrado";
            echo "\n\t Costo: $$costo";
            break;
        }
    }

    echo "\n\n";

?>

Espero haber ayudado, saludos!

El ciclo foreach es un arreglo inteligente que se usa especialmente para recorrer arreglos, no importa cuantos elementos tenga, los va a recorrer todos.

Este ciclo lo he visto en Javascript y es bueno saber que en php también lo tenemos disponible. Cambia muy poco su sintaxis y el hecho de que nos pueda obtener la clave y el valor lo hace muy completo para cualquier implementación.
Comparto mi apunte de la clase probando ambas sintaxis en un arreglo normal y un arreglo asociativo.
.

como tienda de cafes no seria una cafeteria?

Hice un poca mas compleja la condicion:

<?php 

$tiendita_de_cafes = array(
    "Americano" => 20, 
    "Latte" => 25,
    "Recalentado" => 10,
    "Capuccino" => 27.5,
    "Mocca" => 24
);

foreach ($tiendita_de_cafes as $cafe => $price){
        if ($cafe != "Recalentado") {
            echo "El  cafe $cafe es muy rico!!"."<br>";
        }else {
            echo "El cafe $cafe no es muy agradable :c. <br>";
        }
   
  
}

Uno de mis cicloss favoritos! Te facilita mucho el trabajo!

En general, las estructuras de control que mendionó el profesor para recorrer arreglos no secuenciales, pueden ser usadas en cualquier tipo de arreglos. Sin embargo el caso contrario no siempre es cierto. Es decir, los comandos while y for no siempre pueden ser usados por si solos si no se conocen de antemano los índices o si los mismos no son secuenciales.

$array = [
    [
        "nombre" => "Fidel",
        "edad" => 34,
        "hobbie" => "programar"
    ],
    [
        "nombre" => "Ivon",
        "edad" => 33,
        "hobbie" => "comprar protector solar"
    ]
];

foreach ($array as $value) {
    print_r($value['nombre'] . ' tiene ' . $value['edad'] . ' y le gusta ' . $value['hobbie'] . "\n");
};

Hice unos apuntes para comprender fácilmente las estructuras de control condicionales y bucles, con ayuda de diagramas de flujo.
Estructuras de control

Profee, yo tambien quiero la taza de PLATZI 😦

<?php 

echo "Listas de Cervecitas Frias <br>";
$cervezas = array(
    "Brahma"    => 350,
    "Quilmes"   => 380,
    "Golden"    => 400,
    "Heiniken"  => 500 
); 

foreach($cervezas as $chela => $valor) {
    echo "esta bebida $chela, cuestan $$valor pesos <br>";
}

//Aplicamos el break 
echo "lista de comidas <br>";
    $gustoso = array(
        "lomos" => 450,
        "empanadas" => 600, 
        "pizzas" => 550,
        "burguer" => 390,
        "papa fritas" => 200

    ); 

    foreach($gustoso as $comidas => $costo) {
        echo "tenemos en stock estas comidas: $comidas, y cuestan $$costo pesos <br>";
        if($comidas == "pizzas") {
            echo "econtramos la pizza <br><br>";
            break;
        }

    } 

//Continue 
echo "lista de bebidas <br>";
    $gaseosas = array(
        "Coca-Cola" => 300,
        "Pepsi" => 250,
        "Manaos" => 200,
        "Secco"  => 180,
        "Cabalgata" => 100
    ); 

    foreach($gaseosas as $bebidas => $value) {
        if($bebidas == "Manaos" || $bebidas == "Cabalgata") {
            continue;
        }
        echo "solo tengo en stock esta gaseosa: $bebidas y cuestan $$value pesos <br>"; 
        
    }
$tiendaCafes = [
           "Mocca" => 30,
           "Latte" => 20,
           "Capuccino" => 30,
           "Recalentado" => 10,
           "Americano" => 23.5,
         ];

         //NombreArreglo //Llave   //Valor
foreach ($tiendaCafes as $Cafes => $Precio) { 
        
    echo "El cafe $Cafes tiene un precio de: $Precio";
    echo "<br>";
}

echo "<br>";

foreach ($tiendaCafes as $Cafes => $Precio){ //Estoy buscando un cafe de $30
    
    if ($Precio == 30){
       echo "Tenemos un cafe llamado $Cafes con un precio de $Precio";
       echo "<br>";
    }
}

$tienda = array(
“Americano” => 20,
“Latte” => 30,
“Capuccino” => 35
);

foreach ($tienda as $cafe => $pr){

    if($cafe == "Latte"){

        echo "-Ese $cafe quiero!! \n-OK. El precio es: $pr \n";
        break;

    }
}

Excelente clase por fin pude entender el Foreach. Muchas gracias

Podriamos decir que contrinue es para solo omitiri ciertos valores en un arreglo pero si quieres encontrar solo un valor podemos usar break

Hoy aprendimos a usar como usar continue y break…genial

$tienda_de_cafes = array (
“Americano” => 20,
“Latte” => 25,
“Capuccino” => 27.5,
“Mocca” => 24
);
$busc = readline("Ponga el café sobre el que quiera saber el precio: ");
foreach ($tienda_de_cafes as $cafe => $price) {

if($cafe == $busc) {
    echo "El valor del café $cafe, es: $$price USD\n";
    break;
}

};
echo “\n”;

$tienda_de_cafes = array (
“Americano” => 20,
“Latte” => 25,
“Capuccino” => 27.5,
“Mocca” => 24

);

foreach ($tienda_de_cafes as $cafe => $price) {

if($cafe == "Latte") {
    echo "El valor del café $cafe, es: $$price USD\n";
    break;
}

};
echo “\n”;

Me gustaron estas definiciones.
Están en la documentación de PHP que nos comparte el profe.
.
break
Finaliza la ejecución del bucle o switch en curso.
.

continue
Salta el resto de la iteración actual del bucle y continua la ejecución en la evaluación de la condición, para luego comenzar la siguiente iteración.

Hay que tener cuidado con los decimales, por costumbre en Chile los decimales se separan con una coma “,” y los miles por puntos.
Por lo tanto al declarar el Capuccino con una coma el resultado cambia drasticamente.

<?php 

$tiendita_de_cafes = array(
    "Americano" => 20,
    "Latte" => 25,
    "Capuccino" => 27,5,
    "Mocca" => 24
);

foreach($tiendita_de_cafes as $price){
    echo "El café en cuestión tiene un valor $$price USD \n";
}


Resultado:
El café en cuestión tiene un valor $20 USD 
El café en cuestión tiene un valor $25 USD 
El café en cuestión tiene un valor $27 USD 
El café en cuestión tiene un valor $5 USD  
El café en cuestión tiene un valor $24 USD 

?>```

😮 Te quedaron mas dudas sobre el uso de el Foreach te dejo este video con un explicacion cheveere