Menu
Coddy logo textTech

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 просто заменяет старое значение новым. Сам ключ остается неизменным — обновляется только связанное с ним значение.

Это полезно, когда данные должны меняться со временем. Например, при обновлении статуса пользователя, изменении цены товара или исправлении неверно введенной информации. Ключ служит стабильной точкой отсчета, в то время как значение можно изменять по мере необходимости.

challenge icon

Задание

Легко

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

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

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

Создайте ассоциативный массив из входного JSON, затем:

  1. Обновите значение, связанное с key1, на value1
  2. Обновите значение, связанное с 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Проверьте себя

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

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