Modifying Values by Key
Parte da seção Fundamentos do Journey de PHP da Coddy — lição 43 de 71.
Assim como você aprendeu a modificar elementos de array indexado por sua posição, você pode atualizar valores em arrays associativos usando suas chaves. A sintaxe é idêntica — atribuir um novo valor a uma chave existente.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>Quando você atribui um valor a uma chave que já existe, o PHP simplesmente substitui o valor antigo pelo novo. A chave em si permanece inalterada—apenas seu valor associado é atualizado.
Isso é útil quando os dados precisam mudar ao longo do tempo. Por exemplo, atualizando o status de um usuário, alterando o preço de um produto ou corrigindo informações que foram inseridas incorretamente. A chave atua como um ponto de referência estável, enquanto o valor pode ser modificado conforme necessário.
Desafio
FácilLeia uma linha de entrada contendo um objeto JSON representando as informações de um produto (por exemplo, {"name": "Laptop", "price": 999, "stock": 50}).
Em seguida, leia mais três entradas:
- Uma string
key1- a primeira chave a ser atualizada - Uma string
value1- o novo valor parakey1 - Uma string
key2- a segunda chave a ser atualizada - Uma string
value2- o novo valor parakey2
Crie um array associativo a partir da entrada JSON, em seguida:
- Atualize o valor associado a
key1paravalue1 - Atualize o valor associado a
key2paravalue2 - Imprima o valor atualizado em
key1 - Imprima o valor atualizado em
key2
Imprima cada resultado em uma linha separada.
Exemplo:
Se as entradas forem {"name": "Laptop", "price": 999, "stock": 50}, price, 1099, stock e 45, a saída deve ser:
1099
45Se as entradas forem {"city": "Paris", "country": "France", "population": 2000000}, city, London, country e UK, a saída deve ser:
London
UKFolha de consulta
Para atualizar valores em arrays associativos, atribua um novo valor a uma chave existente:
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>Quando você atribui um valor a uma chave que já existe, o PHP substitui o valor antigo pelo novo. A chave permanece inalterada — apenas seu valor associado é atualizado.
Experimente você mesmo
<?php
// Leia a entrada JSON
$jsonInput = trim(fgets(STDIN));
// Leia as chaves e valores para atualizar
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));
// Converta JSON para array associativo
$product = (array)json_decode($jsonInput, true);
// TODO: Escreva seu código abaixo
// 1. Atualize o valor associado à key1 para value1
// 2. Atualize o valor associado à key2 para value2
// 3. Imprima os valores atualizados
?>Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições 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