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Проверьте себя

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

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

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