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Шпаргалка
Используйте 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 и выводим значение или "Ключ не найден"
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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