Modifying Values by Key
Parte de la sección Fundamentos del Journey de PHP de Coddy — lección 43 de 71.
Al igual que aprendiste a modificar elementos de arrays indexados por su posición, puedes actualizar valores en arrays asociativos usando sus claves. La sintaxis es idéntica—asigna un nuevo valor a una clave existente.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>Cuando asignas un valor a una clave que ya existe, PHP simplemente reemplaza el valor antiguo con el nuevo. La clave en sí permanece sin cambios—solo se actualiza su valor asociado.
Esto es útil cuando los datos necesitan cambiar con el tiempo. Por ejemplo, actualizar el estado de un usuario, cambiar el precio de un producto o corregir información que se ingresó incorrectamente. La clave actúa como un punto de referencia estable mientras que el valor puede modificarse según sea necesario.
Desafío
FácilLee una línea de entrada que contiene un objeto JSON que representa la información de un producto (por ejemplo, {"name": "Laptop", "price": 999, "stock": 50}).
Luego lee tres entradas más:
- Una cadena
key1- la primera clave a actualizar - Una cadena
value1- el nuevo valor parakey1 - Una cadena
key2- la segunda clave a actualizar - Una cadena
value2- el nuevo valor parakey2
Crea un arreglo asociativo a partir de la entrada JSON, luego:
- Actualiza el valor asociado con
key1avalue1 - Actualiza el valor asociado con
key2avalue2 - Imprime el valor actualizado en
key1 - Imprime el valor actualizado en
key2
Imprime cada resultado en una línea separada.
Ejemplo:
Si las entradas son {"name": "Laptop", "price": 999, "stock": 50}, price, 1099, stock y 45, la salida debería ser:
1099
45Si las entradas son {"city": "Paris", "country": "France", "population": 2000000}, city, London, country y UK, la salida debería ser:
London
UKHoja de referencia
Para actualizar valores en arreglos asociativos, asigna un nuevo valor a una clave existente:
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>Cuando asignas un valor a una clave que ya existe, PHP reemplaza el valor antiguo con el nuevo. La clave permanece sin cambios—solo se actualiza su valor asociado.
Pruébalo tú mismo
<?php
// Leer la entrada JSON
$jsonInput = trim(fgets(STDIN));
// Leer las claves y valores a actualizar
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));
// Convertir JSON a array asociativo
$product = (array)json_decode($jsonInput, true);
// TODO: Escribe tu código a continuación
// 1. Actualizar el valor asociado con key1 a value1
// 2. Actualizar el valor asociado con key2 a value2
// 3. Imprimir los valores actualizados
?>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 Logic7Arrays Part 2 - Associative
Intro to Associative ArraysAccessing Values by KeyModifying Values by KeyAdding New Key-Value PairsCheck if Key ExistsRecap - Key-Value Data Store2Variables 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 Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators