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.
Sfida
FacileLeggi 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:
- Verifica se
key1esiste nell'array. Se esiste, stampa il valore associato. In caso contrario, stampaKey not found. - Verifica se
key2esiste nell'array. Se esiste, stampa il valore associato. In caso contrario, stampaKey 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 foundSe gli input sono {"title": "Manager", "department": "Sales"}, salary e department, l'output dovrebbe essere:
Key not found
SalesProvalo 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
?>Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori di confronto e logici
Operatori di confrontoUguaglianza e identitàOperatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica semplice7Array Parte 2 - Associativi
Introduzione agli array associativiAccedere ai valori tramite chiaveModificare i valori tramite chiaveAggiungere nuove coppie chiave-valoreVerificare se una chiave esisteRiepilogo - Archivio dati chiave-valore2Variabili e tipi di dati
NumeriStringhe e virgoletteValori booleaniConvenzioni di denominazioneRiepilogo - Inizializzazione delle variabiliVariabili vuoteConcatenazione di stringheAcquisire input dall'utenteConvertire in tipi diversi5Logica condizionale
Istruzione ifIf - elseL’operatore ternarioOperatore null coalescingIstruzione switchRiepilogo - Prendere decisioni3Operatori di base
Operatori aritmeticiOperatore moduloOperatore di elevamento a potenzaAssegnazione compostaIncremento/decrementoPrecedenza degli operatoriRiepilogo - calcoli sempliciOperatori per stringheEsercitati da solo: Compilatore PHP online