Modifying Values by Key
Часть раздела Основы путешествия по PHP на Coddy — урок 43 из 71.
Так же, как вы научились изменять элементы индексированного массива по их позиции, вы можете обновлять значения в ассоциативных массивах с помощью их ключей. Синтаксис идентичен — присвойте новое значение существующему ключу.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>Когда вы присваиваете значение ключу, который уже существует, PHP просто заменяет старое значение на новое. Сам ключ остается неизменным — обновляется только связанное с ним значение.
Это полезно, когда данные должны изменяться со временем. Например, обновление статуса пользователя, изменение цены продукта или исправление некорректно введенной информации. Ключ служит стабильной точкой отсчета, в то время как значение можно изменять по мере необходимости.
Задание
ЛегкоПрочитайте строку ввода, содержащую JSON-объект, представляющий информацию о продукте (например, {"name": "Laptop", "price": 999, "stock": 50}).
Затем прочитайте еще три входных значения:
- Строка
key1- первый ключ для обновления - Строка
value1- новое значение дляkey1 - Строка
key2- второй ключ для обновления - Строка
value2- новое значение дляkey2
Создайте ассоциативный массив из JSON-ввода, затем:
- Обновите значение, связанное с
key1, наvalue1 - Обновите значение, связанное с
key2, наvalue2 - Выведите обновленное значение по ключу
key1 - Выведите обновленное значение по ключу
key2
Выведите каждый результат на отдельной строке.
Пример:
Если входные данные {"name": "Laptop", "price": 999, "stock": 50}, price, 1099, stock и 45, то вывод должен быть:
1099
45Если входные данные {"city": "Paris", "country": "France", "population": 2000000}, city, London, country и UK, то вывод должен быть:
London
UKШпаргалка
Чтобы обновить значения в ассоциативных массивах, присвойте новое значение существующему ключу:
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>Когда вы присваиваете значение уже существующему ключу, PHP заменяет старое значение новым. Ключ остается неизменным — обновляется только связанное с ним значение.
Попробуйте сами
<?php
// Читаем JSON-входные данные
$jsonInput = trim(fgets(STDIN));
// Читаем ключи и значения для обновления
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));
// Преобразуем JSON в ассоциативный массив
$product = (array)json_decode($jsonInput, true);
// TODO: Напишите ваш код ниже
// 1. Обновите значение, связанное с key1, на value1
// 2. Обновите значение, связанное с key2, на value2
// 3. Выведите обновленные значения
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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