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

Шпаргалка

Используйте 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 в противном случае.

Попробуйте сами

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

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

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