Menu
Coddy logo textTech

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.

challenge icon

Desafío

Fácil

Lee 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:

  1. Comprueba si key1 existe en el array. Si existe, imprime el valor asociado a ella. Si no, imprime Key not found.
  2. Comprueba si key2 existe en el array. Si existe, imprime el valor asociado a ella. Si no, imprime Key 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 found

Si las entradas son {"title": "Manager", "department": "Sales"}, salary y department, la salida debería ser:

Key not found
Sales

Prué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

?>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de PHP online