Menu
Coddy logo textTech

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.

challenge icon

Aufgabe

Einfach

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

  1. Prüfen Sie, ob key1 im Array existiert. Wenn ja, geben Sie den zugehörigen Wert aus. Wenn nein, geben Sie Key not found aus.
  2. Prüfen Sie, ob key2 im Array existiert. Wenn ja, geben Sie den zugehörigen Wert aus. Wenn nein, geben Sie Key not found aus.

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 found

Wenn die Eingaben {"title": "Manager", "department": "Sales"}, salary und department sind, sollte die Ausgabe sein:

Key not found
Sales

Spickzettel

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"

?>
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen