Prüfen, ob ein Schlüssel vorhanden ist
Teil des Abschnitts Grundlagen der PHP-Journey von Coddy. Lektion 45 von 71.
Bei der Arbeit mit assoziativen Arrays musst du häufig prüfen, ob ein bestimmter Schlüssel vorhanden ist, bevor du versuchst, auf seinen Wert zuzugreifen. Der Versuch, auf einen nicht vorhandenen Schlüssel zuzugreifen, kann Fehler verursachen. Daher stellt PHP die Funktion array_key_exists() bereit, um dies zunächst sicher zu prüfen.
<?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";
}
?>Die Funktion nimmt zwei Argumente entgegen: den gesuchten Schlüssel und das Array, in dem gesucht werden soll. Sie gibt true zurück, wenn der Schlüssel vorhanden ist, und andernfalls false. Dadurch eignet sie sich perfekt für die Verwendung in bedingten Anweisungen.
Diese Prüfung ist besonders nützlich beim Umgang mit Daten, die möglicherweise unvollständig sind, etwa Benutzereingaben oder Daten aus externen Quellen, bei denen du nicht garantieren kannst, dass alle erwarteten Schlüssel vorhanden sind.
Aufgabe
EinfachLies eine Eingabezeile ein, die ein JSON-Objekt darstellt, das Benutzerdaten enthält (z. B. {"username": "john_doe", "email": "john@example.com", "age": 28}).
Lies anschließend zwei weitere Eingaben ein:
- Eine Zeichenfolge
key1– der erste zu überprüfende Schlüssel - Eine Zeichenfolge
key2– der zweite zu überprüfende Schlüssel
Erstelle aus der JSON-Eingabe ein assoziatives array und:
- Überprüfe, ob
key1im array vorhanden ist. Falls ja, gib den zugehörigen Wert aus. Falls nicht, gibKey not foundaus. - Überprüfe, ob
key2im array vorhanden ist. Falls ja, gib den zugehörigen Wert aus. Falls nicht, gibKey not foundaus.
Gib jedes Ergebnis in einer separaten Zeile aus.
Beispiel:
Wenn die Eingaben {"username": "john_doe", "email": "john@example.com", "age": 28}, username und phone lauten, sollte die Ausgabe folgendermaßen aussehen:
john_doe
Key not foundWenn die Eingaben {"title": "Manager", "department": "Sales"}, salary und department lauten, sollte die Ausgabe folgendermaßen aussehen:
Key not found
SalesProbier es selbst
<?php
// Lies die JSON-Eingabe
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// Konvertiere JSON in ein assoziatives Array
$userData = (array)json_decode($jsonInput, true);
// TODO: Schreibe deinen Code darunter
// Prüfe, ob key1 existiert und gib den Wert oder den genauen Text aus den Anweisungen aus
// Prüfe, ob key2 existiert und gib den Wert oder den genauen Text aus den Anweisungen aus
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Vergleichs- und logische Operatoren
VergleichsoperatorenGleichheit und IdentitätLogische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache Logik7Arrays Teil 2 – Assoziative Arrays
Einführung in assoziative ArraysZugriff auf Werte über SchlüsselÄndern von Werten über SchlüsselNeue Schlüssel-Wert-Paare hinzufügenPrüfen, ob ein Schlüssel vorhanden istZusammenfassung – Schlüssel-Wert-Datenspeicher2Variablen und Datentypen
ZahlenStrings und AnführungszeichenBoolesche WerteNamenskonventionenRückblick – VariableninitialisierungLeere VariablenString-VerkettungBenutzereingabenIn andere Datentypen umwandeln5Bedingte Logik
If-AnweisungIf - ElseDer ternäre OperatorNull-Koaleszenz-OperatorSwitch-AnweisungZusammenfassung – Entscheidungen treffen8Schleifen
For-SchleifeWhile-SchleifeForeach-SchleifeSchleifen mit Schlüsseln und WertenBreak-AnweisungContinue-AnweisungRückblick – Iterieren über Daten11Abschließende Herausforderungen
Herausforderung – FakultätsberechnungHerausforderung – Längstes WortHerausforderung – Vokalzähler3Grundlegende Operatoren
Arithmetische OperatorenModulo-OperatorPotenzierungsoperatorZusammengesetzte ZuweisungInkrement/DekrementOperatorrangfolgeRückblick – Einfache BerechnungenString-OperatorenÜbe selbstständig: Online-PHP-Compiler