Modificar valores mediante una clave
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 una matriz indexada según su posición, puedes actualizar valores en matrices asociativas 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 por el nuevo. La clave en sí permanece sin cambios: solo se actualiza el valor asociado.
Esto es útil cuando los datos deben cambiar con el tiempo. Por ejemplo, al 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 contenga un objeto JSON que represente la información de un producto (p. ej., {"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 dekey1 - Una cadena
key2: la segunda clave que se actualizará - Una cadena
value2: el nuevo valor dekey2
Crea un arreglo asociativo a partir de la entrada JSON y, 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
UKPruébalo tú mismo
<?php
// Lee la entrada JSON
$jsonInput = trim(fgets(STDIN));
// Lee las claves y los valores que se van a actualizar
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));
// Convierte JSON en un array asociativo
$product = (array)json_decode($jsonInput, true);
// TODO: Escribe tu código a continuación
// 1. Actualiza el valor asociado a key1 con value1
// 2. Actualiza el valor asociado a key2 con 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
1Introducción a PHP
El lenguaje PHP¡Hola, mundo!Etiquetas e instruccionesComentariosEl salto de línea4Operadores 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 mediante una claveModificar valores mediante una 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 nomenclaturaRepaso: 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 compuestaIncremento/decrementoPrecedencia de operadoresRepaso: cálculos sencillosOperadores de cadenasPractica por tu cuenta: Compilador de PHP online