Comprobar si existe una clave
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 comprobar si existe una clave específica antes de intentar acceder a su valor. Intentar acceder a una clave que no existe puede causar errores, por lo que PHP proporciona la función array_key_exists() para comprobarlo primero de forma segura.
<?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 acepta dos argumentos: la clave que buscas y el array en el que realizar la búsqueda. Devuelve true si la clave existe y false en caso contrario. Esto la hace perfecta para usarla en sentencias condicionales.
Esta comprobación es especialmente útil al trabajar con datos que podrían estar incompletos, como la entrada del usuario o datos de fuentes externas, cuando no puedes garantizar que todas las claves esperadas estén presentes.
Desafío
FácilLee una línea de entrada que contenga un objeto JSON que represente datos de usuario (por ejemplo, {"username": "john_doe", "email": "john@example.com", "age": 28}).
Después, lee dos entradas más:
- Una cadena
key1: la primera clave que se comprobará - Una cadena
key2: la segunda clave que se comprobará
Crea un array asociativo a partir de la entrada JSON y, después:
- Comprueba si
key1existe en el array. Si existe, imprime el valor asociado a ella. Si no, imprimeKey not found. - Comprueba si
key2existe en el array. Si existe, imprime el valor asociado a ella. 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
SalesPruébalo tú mismo
<?php
// Lee la entrada JSON
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// Convierte el JSON a un array asociativo
$userData = (array)json_decode($jsonInput, true);
// TODO: Escribe tu código debajo
// Comprueba si key1 existe e imprime el valor o el texto exacto de las instrucciones
// Comprueba si key2 existe e imprime el valor o el texto exacto de las instrucciones
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparaciónIgualdad e identidadOperadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simple7Arrays Parte 2 - Asociativos
Introducción a los arrays asociativosAcceder a valores por claveModificar valores por claveAñadir nuevos pares clave-valorComprobar si existe una claveRepaso - Almacén de datos clave-valor2Variables y tipos de datos
NúmerosCadenas y comillasBooleanosConvenciones de nombresRepaso: inicialización de variablesVariables vacíasConcatenación de cadenasObtener datos del usuarioConvertir a otros tipos5Lógica condicional
Sentencia ifIf - ElseEl operador ternarioOperador de coalescencia nulaSentencia switchRepaso - Tomar decisiones3Operadores básicos
Operadores aritméticosOperador móduloOperador de exponenciaciónAsignación combinadaIncremento/DecrementoPrecedencia de operadoresRepaso: cálculos simplesOperadores de cadenasPractica por tu cuenta: Compilador de PHP online