Check if Key Exists
Teil des Abschnitts Grundlagen der PHP-Journey von Coddy — Lektion 45 von 71.
Beim Arbeiten mit assoziativen Arrays müssen Sie oft prüfen, ob ein bestimmter Schlüssel existiert, bevor Sie versuchen, auf seinen Wert zuzugreifen. Der Versuch, auf einen nicht existierenden Schlüssel zuzugreifen, kann Fehler verursachen, daher stellt PHP die array_key_exists()-Funktion zur Verfügung, um zuerst sicher zu überprü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: den gesuchten Schlüssel und das zu durchsuchende Array. Sie gibt true zurück, wenn der Schlüssel existiert, und false sonst. Das macht sie perfekt für die Verwendung in Bedingungsanweisungen.
Diese Überprüfung ist besonders nützlich, wenn Sie mit Daten umgehen, die unvollständig sein könnten – wie Benutzereingaben oder Daten aus externen Quellen –, bei denen Sie nicht garantieren können, dass alle erwarteten Schlüssel vorhanden sind.
Aufgabe
EinfachLesen Sie eine Eingabezeile, die ein JSON-Objekt mit Benutzerdaten enthält (z. B. {"username": "john_doe", "email": "john@example.com", "age": 28}).
Lesen Sie dann zwei weitere Eingaben:
- Eine Zeichenkette
key1– der erste zu prüfende Schlüssel - Eine Zeichenkette
key2– der zweite zu prüfende Schlüssel
Erstellen Sie ein assoziatives Array aus der JSON-Eingabe, dann:
- Prüfen Sie, ob
key1im Array existiert. Wenn ja, geben Sie den zugehörigen Wert aus. Wenn nein, geben SieKey not foundaus. - Prüfen Sie, ob
key2im Array existiert. Wenn ja, geben Sie den zugehörigen Wert aus. Wenn nein, geben SieKey not foundaus.
Geben Sie jedes Ergebnis in einer separaten Zeile aus.
Beispiel:
Wenn die Eingaben {"username": "john_doe", "email": "john@example.com", "age": 28}, username und phone sind, sollte die Ausgabe sein:
john_doe
Key not foundWenn die Eingaben {"title": "Manager", "department": "Sales"}, salary und department sind, sollte die Ausgabe sein:
Key not found
SalesSpickzettel
Verwenden Sie array_key_exists(), um zu prüfen, ob ein bestimmter Schlüssel in einem assoziativen Array existiert, bevor Sie darauf zugreifen:
<?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: den zu suchenden Schlüssel und das Array. Sie gibt true zurück, wenn der Schlüssel existiert, false anderfalls.
Probier es selbst
<?php
// JSON-Eingabe einlesen
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// JSON in assoziatives Array umwandeln
$userData = (array)json_decode($jsonInput, true);
// TODO: Schreibe deinen Code unten
// Prüfe, ob key1 existiert und drucke den Wert oder "Key not found"
// Prüfe, ob key2 existiert und drucke den Wert oder "Key not found"
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic7Arrays Part 2 - Associative
Intro to Associative ArraysAccessing Values by KeyModifying Values by KeyAdding New Key-Value PairsCheck if Key ExistsRecap - Key-Value Data Store2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators