Menu
Coddy logo textTech

Изменение значений по ключу

Часть раздела Основы путешествия по 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 можно изменять по мере необходимости.

challenge icon

Задание

Легко

Прочитайте строку ввода, содержащую объект JSON, представляющий информацию о продукте (например, {"name": "Laptop", "price": 999, "stock": 50}).

Затем прочитайте ещё четыре значения:

  • строка key1 — первый ключ для обновления
  • строка value1 — новое значение для key1
  • строка key2 — второй ключ для обновления
  • строка value2 — новое значение для key2

Создайте associative array из входных данных JSON, затем:

  1. Обновите значение, associated с key1, на value1
  2. Обновите значение, associated с key2, на value2
  3. Выведите обновлённое значение по ключу key1
  4. Выведите обновлённое значение по ключу 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. Вывести обновлённые значения

?>
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор PHP