Изменение значений по ключу
Часть раздела Основы путешествия по PHP на Coddy. Урок 43 из 71.
Так же, как ты научился изменять элементы индексированного массива по их позиции, ты можешь обновлять значения в ассоциативных массивах, используя их keys. Синтаксис идентичен: присвой новое значение существующему ключу.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>Когда вы присваиваете значение уже существующему ключу, PHP просто заменяет старое значение новым. Сам ключ остаётся неизменным: обновляется только его связанное значение.
Это полезно, когда данные должны изменяться со временем. Например, при обновлении статуса user, изменении цены product или исправлении информации, которая была введена неправильно. key служит стабильной точкой отсчёта, а value можно изменять по мере необходимости.
Задание
ЛегкоПрочитайте строку ввода, содержащую объект JSON, представляющий информацию о продукте (например, {"name": "Laptop", "price": 999, "stock": 50}).
Затем прочитайте ещё четыре значения:
- строка
key1— первый ключ для обновления - строка
value1— новое значение дляkey1 - строка
key2— второй ключ для обновления - строка
value2— новое значение дляkey2
Создайте associative array из входных данных JSON, затем:
- Обновите значение, associated с
key1, наvalue1 - Обновите значение, associated с
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
// Прочитать входные данные 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. Вывести обновлённые значения
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравненияРавенство и идентичностьЛогические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логика7Массивы, часть 2 — ассоциативные
Введение в ассоциативные массивыДоступ к значениям по ключуИзменение значений по ключуДобавление новых пар «ключ–значение»Проверка существования ключаПовторение — хранилище данных «ключ–значение»2Переменные и типы данных
ЧислаСтроки и кавычкиБулевы значенияСоглашения об именованииПовторение — инициализация переменныхПустые переменныеКонкатенация строкПолучение пользовательского вводаПриведение к другим типам5Условная логика
Оператор ifIf — ElseТернарный операторОператор нулевого слиянияОператор switchПовторение: принятие решений3Основные операторы
Арифметические операторыОператор остатка от деленияОператор возведения в степеньСоставное присваиваниеИнкремент/декрементПриоритет операторовПовторение — простые вычисленияОператоры строкПотренируйтесь самостоятельно: Онлайн-компилятор PHP