Menu
Coddy logo textTech

Check if Key Exists

Часть раздела Основы путешествия по 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 в противном случае. Это делает её идеальной для использования в условных операторах.

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

challenge icon

Задание

Легко

Прочитайте строку ввода, содержащую объект JSON, представляющий данные пользователя (например, {"username": "john_doe", "email": "john@example.com", "age": 28}).

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

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

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

  1. Проверьте, существует ли key1 в массиве. Если существует, выведите связанное с ним значение. Если нет, выведите Key not found.
  2. Проверьте, существует ли 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, и вывести значение или точный текст из инструкций

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

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

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

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