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 de un array. Pero ¿qué ocurre si también necesitas la key? Esto resulta especialmente útil cuando trabajas con arrays associative.
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ácilRead una sola línea de entrada que contenga un objeto JSON que represente un product con key y valores (por ejemplo, {"name":"Laptop","price":"999","stock":"25"}).
Usa un bucle foreach con la sintaxis de pares key-valor para iterar through los datos de product. Imprime cada key y su valor correspondiente con el formato:
[key] => [value]Imprime cada par key-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
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 OperatorsPractica por tu cuenta: Compilador de PHP online