Iteración 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 de 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: ParisLa sintaxis foreach ($array as $key => $value) asigna la clave actual a $key y el valor correspondiente a $value. Puedes llamar a estas variables como quieras, pero procura que sean 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: blueTener acceso tanto a las claves como a los valores facilita mostrar datos etiquetados o realizar operaciones que dependen de la clave.
Desafío
FácilLee 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 de pares clave-valor para recorrer los datos del producto. Imprime cada clave y su valor correspondiente con 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 => 25Ejemplo 2:
Si la entrada es {"title":"PHP Basics","author":"John","pages":"350"}, la salida debería ser:
title => PHP Basics
author => John
pages => 350Ejemplo 3:
Si la entrada es {"city":"Paris","country":"France"}, la salida debería ser:
city => Paris
country => FrancePruébalo tú mismo
<?php
// Lee la entrada JSON
$input = trim(fgets(STDIN));
// Convierte JSON a array asociativo
$product = (array)json_decode($input, true);
// TODO: Escribe tu código debajo
// Usa un bucle foreach con sintaxis de clave-valor para iterar a través de los datos del producto
// Imprime cada clave y valor en el formato: [key] => [value]
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparaciónIgualdad e identidadOperadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simple2Variables y tipos de datos
NúmerosCadenas y comillasBooleanosConvenciones de nombresRepaso: inicialización de variablesVariables vacíasConcatenación de cadenasObtener datos del usuarioConvertir a otros tipos5Lógica condicional
Sentencia ifIf - ElseEl operador ternarioOperador de coalescencia nulaSentencia switchRepaso - Tomar decisiones8Bucles
Bucle ForBucle WhileBucle ForeachIteración con claves y valoresSentencia BreakSentencia ContinueRepaso: iterar sobre datos3Operadores básicos
Operadores aritméticosOperador móduloOperador de exponenciaciónAsignación combinadaIncremento/DecrementoPrecedencia de operadoresRepaso: cálculos simplesOperadores de cadenasPractica por tu cuenta: Compilador de PHP online