Modificar valores por clave
Parte de la sección Fundamentos del Journey de PHP de Coddy. Lección 43 de 71.
Al igual que aprendiste a modificar los elementos de una matriz indexada por su posición, puedes actualizar los valores de las matrices asociativas usando sus claves. La sintaxis es idéntica: asigna un valor nuevo 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 por el nuevo. La clave permanece sin cambios: solo se actualiza el valor asociado a ella.
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 introdujo 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 contenga un objeto JSON que represente la información de un producto (por ejemplo, {"name": "Laptop", "price": 999, "stock": 50}).
Después, lee cuatro entradas más:
- Una cadena
key1: la primera clave que se actualizará - Una cadena
value1: el nuevo valor parakey1 - Una cadena
key2: la segunda clave que se actualizará - Una cadena
value2: el nuevo valor parakey2
Crea una matriz asociativa a partir de la entrada JSON y, después:
- 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
UKPruébalo tú mismo
<?php
// Lee la entrada JSON
$jsonInput = trim(fgets(STDIN));
// Lee las claves y valores a actualizar
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));
// Convierte JSON a array asociativo
$product = (array)json_decode($jsonInput, true);
// TODO: Escribe tu código debajo
// 1. Actualiza el valor asociado con key1 a value1
// 2. Actualiza el valor asociado con key2 a value2
// 3. Imprime 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
4Operadores de comparación y lógicos
Operadores de comparaciónIgualdad e identidadOperadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simple7Arrays Parte 2 - Asociativos
Introducción a los arrays asociativosAcceder a valores por claveModificar valores por claveAñadir nuevos pares clave-valorComprobar si existe una claveRepaso - Almacén de datos clave-valor2Variables 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 decisiones3Operadores 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