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
$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. Выведите обновленные значения

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

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

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