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 в противном случае. Это делает её идеальной для использования в условных операторах.
Эта проверка особенно полезна при работе с данными, которые могут быть неполными — например, с пользовательским вводом или данными из внешних источников, — когда вы не можете гарантировать наличие всех ожидаемых ключей.
Задание
ЛегкоПрочитайте строку ввода, содержащую объект JSON, представляющий данные пользователя (например, {"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, и вывести значение или точный текст из инструкций
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic7Arrays Part 2 - Associative
Intro to Associative ArraysAccessing Values by KeyModifying Values by KeyAdding New Key-Value PairsCheck if Key ExistsRecap - Key-Value Data Store2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString OperatorsПотренируйтесь самостоятельно: Онлайн-компилятор PHP