Check if Key Exists
Parte de la sección Fundamentos del Journey de PHP de Coddy — lección 45 de 71.
Al trabajar con arrays asociativos, a menudo necesitarás verificar si una clave específica existe antes de intentar acceder a su valor. Intentar acceder a una clave inexistente puede causar errores, por lo que PHP proporciona la función array_key_exists() para verificar de manera segura primero.
<?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";
}
?>La función toma dos argumentos: la clave que estás buscando y el arreglo en el que buscar. Devuelve true si la clave existe, y false en caso contrario. Esto la hace perfecta para usarla en sentencias condicionales.
Esta verificación es especialmente útil al tratar con datos que podrían estar incompletos—like user input or data from external sources—donde no puedes garantizar que todas las claves esperadas estén presentes.
Desafío
FácilLee una línea de entrada que contiene un objeto JSON que representa datos de usuario (por ejemplo, {"username": "john_doe", "email": "john@example.com", "age": 28}).
Luego lee dos entradas más:
- Una cadena
key1- la primera clave a verificar - Una cadena
key2- la segunda clave a verificar
Crea un array asociativo a partir de la entrada JSON, luego:
- Verifica si
key1existe en el array. Si existe, imprime el valor asociado con él. Si no, imprimeKey not found. - Verifica si
key2existe en el array. Si existe, imprime el valor asociado con él. Si no, imprimeKey not found.
Imprime cada resultado en una línea separada.
Ejemplo:
Si las entradas son {"username": "john_doe", "email": "john@example.com", "age": 28}, username y phone, la salida debería ser:
john_doe
Key not foundSi las entradas son {"title": "Manager", "department": "Sales"}, salary y department, la salida debería ser:
Key not found
SalesHoja de referencia
Usa array_key_exists() para verificar si una clave específica existe en un array asociativo antes de acceder a ella:
<?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";
}
?>La función toma dos argumentos: la clave a buscar y el array. Devuelve true si la clave existe, false de lo contrario.
Pruébalo tú mismo
<?php
// Leer la entrada JSON
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// Convertir JSON a array asociativo
$userData = (array)json_decode($jsonInput, true);
// TODO: Escribe tu código a continuación
// Verifica si key1 existe e imprime el valor o "Key not found"
// Verifica si key2 existe e imprime el valor o "Key not found"
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
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