No tienes acceso a esta clase

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

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

11 Días
18 Hrs
0 Min
51 Seg

Ciclo foreach

12/25
Recursos

Aportes 26

Preguntas 2

Ordenar por:

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

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.
.

Sentencias break y continue

En PHP, las sentencias break y continue se utilizan dentro de estructuras de control para modificar el flujo de ejecución del programa.

La sentencia break se utiliza para salir de un bucle, mientras que la sentencia continue se utiliza para saltar una iteración del bucle y pasar a la siguiente.

Ejemplo de la sentencia break

Un ejemplo de la sentencia break en la vida real es la búsqueda de un elemento en un arreglo. Por ejemplo, se puede utilizar un bucle for para buscar un número en un arreglo y salir del bucle cuando se encuentra el número.

$numeros = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
$buscar = 5;

for ($i = 0; $i < count($numeros); $i++) {
    if ($numeros[$i] == $buscar) {
        echo "El número $buscar se encuentra en el índice $i.\n";
        break;
    }
}

El output del código PHP es:

El número 5 se encuentra en el índice 4.

Este código utiliza un bucle for para buscar el número 5 en un arreglo y salir del bucle cuando se encuentra el número. Dentro del bloque for, se verifica si el valor del elemento actual del arreglo es igual al número a buscar; si es así, se imprime un mensaje y se utiliza la sentencia break para salir del bucle.

Ejemplo de la sentencia continue

Un ejemplo de la sentencia continue en la vida real es la impresión de números pares en un rango determinado. Por ejemplo, se puede utilizar un bucle for para imprimir los números pares en el rango del 1 al 10.

for ($i = 1; $i <= 10; $i++) {
    if ($i % 2 != 0) {
        continue;
    }
    echo "$i\n";
}

The output of the provided PHP code is:

2
4
6
8
10

Este código utiliza un bucle for para imprimir los números pares en el rango del 1 al 10. Dentro del bloque for, se verifica si el valor del elemento actual es impar, si es así, se utiliza la sentencia continue para saltar a la siguiente iteración del bucle. Si el valor es par, se imprime el número utilizando el comando echo.

En resumen, las sentencias break y continue son útiles para modificar el flujo de ejecución de un programa dentro de estructuras de control como los bucles for y foreach.

LA TABLA DE SKATE MAS CARA

<?php
$skate_tabla = array(
	"Pop Shop"=>560.87,
	"Antifashon"=>630.99,
	"California"=>1025.99,
	"Element"=>689.48,
	"Tree"=>478.36,
	"Enjoy"=>388.86,
	"Toy Machine"=>789.88,
);

/*foreach ($skate_tabla as $precio) {
	// code...
	echo "La tabla de skate cuesta: $$precio MXN \n";
}*/

foreach ($skate_tabla as $tabla => $precio) {
	if(900>=$precio){
		echo "La tabla $tabla cuesta $$precio MXN \n";
		continue;
	}else{
		echo "la tabla $tabla mas cara es: $$precio MXN \n";
		break;
	}
	// echo "La tabla $tabla cuesta $$precio MXN \n";
}
echo "\n";

?>

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>";
        }
   
  
}

Porfavor, este profesor es un ángel. Hada ahora todas sus clases son perfectas

nunca use esos elementos de continue y break, que chulo.

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

Un buscador que valida si existe o no: ![](https://static.platzi.com/media/user_upload/image-66b23e27-8ebe-4390-a1f7-eca7d2b54e7e.jpg)