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: ParisLa 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: 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 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 => 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 => FranceHoja 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: ParisEsta 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: bluePrué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]
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions8Bucles
Bucle forBucle whileBucle foreachBucles con claves y valoresSentencia breakSentencia continueResumen - Iterando sobre datos3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators