Menu
Coddy logo textTech

Verificare se una chiave esiste

Fa parte della sezione Fondamenti del percorso PHP di Coddy. Lezione 45 di 71.

Quando lavori con gli array associativi, spesso dovrai verificare se una chiave specifica esiste prima di provare ad accedere al suo valore. Tentare di accedere a una chiave inesistente può causare errori, quindi PHP fornisce la funzione array_key_exists() per verificare in modo sicuro prima.

<?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 funzione accetta due argomenti: la chiave che stai cercando e l'array in cui cercare. Restituisce true se la chiave esiste e false altrimenti. Questo la rende perfetta per l'uso nelle istruzioni condizionali.

Questo controllo è particolarmente utile quando si lavora con dati che potrebbero essere incompleti, come l'input dell'utente o i dati provenienti da fonti esterne, quando non puoi garantire che siano presenti tutte le chiavi previste.

challenge icon

Sfida

Facile

Leggi una riga di input contenente un oggetto JSON che rappresenta i dati di un utente (ad es., {"username": "john_doe", "email": "john@example.com", "age": 28}).

Poi leggi altri due input:

  • Una stringa key1 - la prima chiave da verificare
  • Una stringa key2 - la seconda chiave da verificare

Crea un array associativo a partire dall'input JSON, poi:

  1. Verifica se key1 esiste nell'array. Se esiste, stampa il valore associato. In caso contrario, stampa Key not found.
  2. Verifica se key2 esiste nell'array. Se esiste, stampa il valore associato. In caso contrario, stampa Key not found.

Stampa ciascun risultato su una riga separata.

Esempio:

Se gli input sono {"username": "john_doe", "email": "john@example.com", "age": 28}, username e phone, l'output dovrebbe essere:

john_doe
Key not found

Se gli input sono {"title": "Manager", "department": "Sales"}, salary e department, l'output dovrebbe essere:

Key not found
Sales

Provalo tu

<?php
// Leggi l'input JSON
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));

// Converti JSON in un array associativo
$userData = (array)json_decode($jsonInput, true);

// TODO: Scrivi il tuo codice qui sotto
// Controlla se key1 esiste e stampa il valore o il testo esatto indicato nelle istruzioni

// Controlla se key2 esiste e stampa il valore o il testo esatto indicato nelle istruzioni

?>
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore PHP online