Menu
Coddy logo textTech

Bucles con claves y valores

Parte de la sección Fundamentos del Journey de PHP de Coddy — lección 50 de 71.

En la lección anterior, aprendiste cómo foreach te da acceso a cada valor en un array. Pero ¿qué pasa si también necesitas la clave? Esto es especialmente útil cuando trabajas con arrays asociativos.

El bucle foreach tiene una sintaxis extendida que proporciona tanto la clave como el valor en cada iteración:

<?php
$person = [
    "name" => "Alice",
    "age" => 25,
    "city" => "Paris"
];

foreach ($person as $key => $value) {
    echo "$key: $value\n";
}
?>

Esto produce:

name: Alice
age: 25
city: Paris

La sintaxis foreach ($array as $key => $value) asigna la clave actual a $key y el valor correspondiente a $value. Puedes nombrar estas variables como quieras—solo manténlas descriptivas.

Esto también funciona con arrays indexados, donde las claves son los índices numéricos:

<?php
$colors = ["red", "green", "blue"];

foreach ($colors as $index => $color) {
    echo "$index: $color\n";
}
?>

Esto produce:

0: red
1: green
2: blue

Tener acceso tanto a las claves como a los valores facilita mostrar datos etiquetados o realizar operaciones que dependen de la clave.

challenge icon

Desafío

Fácil

Lee una sola línea de entrada que contenga un objeto JSON que represente un producto con claves y valores (por ejemplo, {"name":"Laptop","price":"999","stock":"25"}).

Usa un bucle foreach con la sintaxis clave-valor para iterar a través de los datos del producto. Imprime cada clave y su valor correspondiente en el formato:

[key] => [value]

Imprime cada par clave-valor en una línea separada.

Ejemplo 1:

Si la entrada es {"name":"Laptop","price":"999","stock":"25"}, la salida debería ser:

name => Laptop
price => 999
stock => 25

Ejemplo 2:

Si la entrada es {"title":"PHP Basics","author":"John","pages":"350"}, la salida debería ser:

title => PHP Basics
author => John
pages => 350

Ejemplo 3:

Si la entrada es {"city":"Paris","country":"France"}, la salida debería ser:

city => Paris
country => France

Hoja de referencia

El bucle foreach puede proporcionar tanto la clave como el valor en cada iteración utilizando la sintaxis extendida:

foreach ($array as $key => $value) {
    // use $key and $value
}

Ejemplo con un array asociativo:

$person = [
    "name" => "Alice",
    "age" => 25,
    "city" => "Paris"
];

foreach ($person as $key => $value) {
    echo "$key: $value\n";
}

Salida:

name: Alice
age: 25
city: Paris

Esta sintaxis también funciona con arrays indexados, donde las claves son índices numéricos:

$colors = ["red", "green", "blue"];

foreach ($colors as $index => $color) {
    echo "$index: $color\n";
}

Salida:

0: red
1: green
2: blue

Pruébalo tú mismo

<?php
// Leer la entrada JSON
$input = trim(fgets(STDIN));

// Convertir JSON a array asociativo
$product = (array)json_decode($input, true);

// TODO: Escribe tu código a continuación
// Usa un bucle foreach con sintaxis clave-valor para iterar a través de los datos del producto
// Imprime cada clave y valor en el formato: [clave] => [valor]

?>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos