Добавление новых пар «ключ–значение»
Часть раздела Основы путешествия по PHP на Coddy. Урок 44 из 71.
Вы узнали, как изменять существующие значения в ассоциативном array. Но что происходит, когда вы присваиваете значение ключу key, которого ещё не существует? PHP автоматически создаёт его для вас.
<?php
$person = [
"name" => "Alice",
"age" => 25
];
$person["city"] = "Paris";
$person["job"] = "Developer";
echo $person["city"]; // Париж
echo $person["job"]; // Разработчик
?>Синтаксис такой же, как при изменении: $array["key"] = value, но если ключ не существует, PHP добавляет в массив новую пару ключ–значение вместо обновления существующей.
Это особенно полезно, когда вы постепенно создаёте associative array:
<?php
$settings = [];
$settings["theme"] = "dark";
$settings["language"] = "en";
$settings["notifications"] = true;
echo $settings["theme"]; // dark
?>Начинать с пустого массива и добавлять пары по мере необходимости — распространённый шаблон при сборе данных со временем или когда вы заранее не знаете все ключи.
Задание
ЛегкоНачните с пустого ассоциативного массива с именем $profile.
Прочитайте следующие входные данные:
- Строка
key1— первый ключ для добавления - Строка
value1— значение дляkey1 - Строка
key2— второй ключ для добавления - Строка
value2— значение дляkey2 - Строка
key3— третий ключ для добавления - Строка
value3— значение дляkey3
Добавьте каждую пару ключ-значение в массив $profile, затем выведите:
- Значение, связанное с
key1 - Значение, связанное с
key2 - Значение, связанное с
key3
Выведите каждый результат в отдельной строке.
Пример:
Если входные данные — username, alice123, email, alice@example.com, status и active, результат должен быть таким:
alice123
alice@example.com
activeЕсли входные данные — brand, Nike, size, 42, color и black, результат должен быть таким:
Nike
42
blackПопробуйте сами
<?php
// Читаем входные данные
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));
$key3 = trim(fgets(STDIN));
$value3 = trim(fgets(STDIN));
// Начинаем с пустого ассоциативного массива
$profile = [];
// TODO: Напишите свой код ниже
// Добавьте каждую пару ключ-значение в массив $profile
// Выведите значения, связанные с каждым ключом
echo $profile[$key1] . "\n";
echo $profile[$key2] . "\n";
echo $profile[$key3] . "\n";
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравненияРавенство и идентичностьЛогические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логика7Массивы, часть 2 — ассоциативные
Введение в ассоциативные массивыДоступ к значениям по ключуИзменение значений по ключуДобавление новых пар «ключ–значение»Проверка существования ключаПовторение — хранилище данных «ключ–значение»2Переменные и типы данных
ЧислаСтроки и кавычкиБулевы значенияСоглашения об именованииПовторение — инициализация переменныхПустые переменныеКонкатенация строкПолучение пользовательского вводаПриведение к другим типам5Условная логика
Оператор ifIf — ElseТернарный операторОператор нулевого слиянияОператор switchПовторение: принятие решений3Основные операторы
Арифметические операторыОператор остатка от деленияОператор возведения в степеньСоставное присваиваниеИнкремент/декрементПриоритет операторовПовторение — простые вычисленияОператоры строкПотренируйтесь самостоятельно: Онлайн-компилятор PHP