Проверка существования ключа
Часть раздела Основы путешествия по PHP на Coddy. Урок 45 из 71.
При работе с ассоциативными массивами вам часто потребуется проверить, существует ли определённый ключ, прежде чем пытаться получить его значение. Попытка обратиться к несуществующему ключу может вызвать ошибки, поэтому PHP предоставляет функцию array_key_exists(), которая позволяет сначала безопасно выполнить проверку.
<?php
$person = [
"name" => "Alice",
"age" => 25
];
if (array_key_exists("name", $person)) {
echo "Name exists!";
}
if (array_key_exists("city", $person)) {
echo "City exists!";
} else {
echo "City not found";
}
?>Функция принимает два аргумента: искомый ключ и массив, в котором выполняется поиск. Она возвращает true, если ключ существует, и false в противном случае. Это делает её идеальной для использования в условных операторах.
Эта проверка особенно полезна при работе с данными, которые могут быть неполными, например с пользовательским вводом или данными из внешних источников, когда нельзя гарантировать наличие всех ожидаемых ключей.
Задание
ЛегкоПрочитайте строку ввода, содержащую объект JSON, представляющий данные user (например, {"username": "john_doe", "email": "john@example.com", "age": 28}).
Затем прочитайте ещё два входных значения:
- Строку
key1— первый ключ для проверки - Строку
key2— второй ключ для проверки
Создайте ассоциативный массив из входных данных JSON, затем:
- Проверьте, существует ли
key1в массиве. Если существует, выведите связанное с ним значение. Если нет, выведитеKey not found. - Проверьте, существует ли
key2в массиве. Если существует, выведите связанное с ним значение. Если нет, выведитеKey not found.
Выведите каждый результат в отдельной строке.
Пример:
Если входными данными являются {"username": "john_doe", "email": "john@example.com", "age": 28}, username и phone, результатом должен быть:
john_doe
Key not foundЕсли входными данными являются {"title": "Manager", "department": "Sales"}, salary и department, результатом должен быть:
Key not found
SalesПопробуйте сами
<?php
// Прочитать входные данные JSON
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// Преобразовать JSON в ассоциативный массив
$userData = (array)json_decode($jsonInput, true);
// TODO: Напишите ваш код ниже
// Проверить, существует ли key1, и вывести значение или точный текст из инструкций
// Проверить, существует ли key2, и вывести значение или точный текст из инструкций
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравненияРавенство и идентичностьЛогические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логика7Массивы, часть 2 — ассоциативные
Введение в ассоциативные массивыДоступ к значениям по ключуИзменение значений по ключуДобавление новых пар «ключ–значение»Проверка существования ключаПовторение — хранилище данных «ключ–значение»2Переменные и типы данных
ЧислаСтроки и кавычкиБулевы значенияСоглашения об именованииПовторение — инициализация переменныхПустые переменныеКонкатенация строкПолучение пользовательского вводаПриведение к другим типам5Условная логика
Оператор ifIf — ElseТернарный операторОператор нулевого слиянияОператор switchПовторение: принятие решений3Основные операторы
Арифметические операторыОператор остатка от деленияОператор возведения в степеньСоставное присваиваниеИнкремент/декрементПриоритет операторовПовторение — простые вычисленияОператоры строкПотренируйтесь самостоятельно: Онлайн-компилятор PHP