Menu
Coddy logo textTech

Zugriff auf Werte über Schlüssel

Teil des Abschnitts Grundlagen der PHP-Journey von Coddy. Lektion 42 von 71.

Nachdem du nun verstanden hast, was assoziative Arrays sind, lernen wir, wie man Werte aus ihnen abruft. Genau wie indizierte Arrays numerische Positionen verwenden, nutzen assoziative Arrays Schlüssel in eckigen Klammern.

<?php
$person = [
    "name" => "Alice",
    "age" => 25,
    "city" => "Paris"
];

echo $person["name"]; // Alice
echo $person["age"];  // 25
?>

Die Syntax lautet $array["key"]: Setze den Schlüssel als Zeichenkette in die eckigen Klammern, und PHP gibt den zugehörigen Wert zurück. Das ist wesentlich lesbarer, als sich merken zu müssen, dass sich der Name am Index 0 befindet.

Du kannst den abgerufenen Wert auch in einer Variable zur späteren Verwendung speichern:

<?php
$product = [
    "title" => "Laptop",
    "price" => 999
];

$itemName = $product["title"];
echo $itemName; // Laptop
?>

Der Schlüssel muss exakt übereinstimmen, einschließlich der Groß- und Kleinschreibung. Die Verwendung von "Name" statt "name" würde einen Fehler verursachen, da PHP sie als unterschiedliche Schlüssel behandelt.

Manchmal kommen Daten als JSON-Zeichenkette statt als PHP-Array-Literal an. JSON (JavaScript Object Notation) ist ein gängiges Textformat zur Darstellung strukturierter Daten. Zum Beispiel:

$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';

Die integrierte PHP-Funktion json_decode() konvertiert eine JSON-Zeichenfolge in einen PHP-Wert. Um ein assoziatives Array zu erhalten, übergib true als zweites Argument:

<?php
$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';

$book = json_decode($json, true);

echo $book["title"];  // Dune
echo $book["author"]; // Frank Herbert
echo $book["year"];   // 1965
?>

Nach dem Aufruf von json_decode($json, true) ist das Ergebnis ein reguläres assoziatives Array, und du kannst auf seine Werte genau wie auf die eines beliebigen anderen assoziativen Arrays zugreifen: mit $array["key"].

challenge icon

Aufgabe

Einfach

Lies eine Eingabezeile ein, die ein JSON-Objekt mit den Informationen zu einem Buch enthält (z. B. {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).

Lies anschließend zwei weitere Eingaben ein:

  • Eine Zeichenkette key1, die den ersten abzurufenden Schlüssel darstellt
  • Eine Zeichenkette key2, die den zweiten abzurufenden Schlüssel darstellt

Um die JSON-Zeichenkette in ein assoziatives Array umzuwandeln, verwende die integrierte Funktion json_decode() mit true als zweitem Argument:
$array = json_decode($jsonString, true);
Das zweite Argument true weist PHP an, ein assoziatives Array statt eines Objekts zurückzugeben. Nach der Dekodierung kannst du auf Werte über ihren Schlüssel zugreifen, wie bei jedem assoziativen Array, z. B. $array["title"].

Erstelle aus der JSON-Eingabe ein assoziatives Array und:

  1. Greife auf den mit key1 verbundenen Wert zu und gib ihn aus
  2. Speichere den mit key2 verbundenen Wert in einer Variable namens $info
  3. Gib den in $info gespeicherten Wert aus

Gib jedes Ergebnis in einer separaten Zeile aus.

Beispiel:

Wenn die Eingaben {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}, title und author lauten, sollte die Ausgabe wie folgt aussehen:

The Great Gatsby
F. Scott Fitzgerald

Wenn die Eingaben {"name": "Laptop", "brand": "TechCo", "price": 999}, brand und price lauten, sollte die Ausgabe wie folgt aussehen:

TechCo
999

Probier es selbst

<?php
// Lies die JSON-Eingabe
$jsonInput = trim(fgets(STDIN));

// Lies die beiden Schlüssel
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));

// TODO: Schreibe deinen Code darunter
// 1. Erstelle ein assoziatives Array aus der JSON-Eingabe mit json_decode
// 2. Greife auf den mit $key1 verknüpften Wert zu und gib ihn aus
// 3. Speichere den mit $key2 verknüpften Wert in einer Variable namens $info
// 4. Gib den in $info gespeicherten Wert aus

?>
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

Übe selbstständig: Online-PHP-Compiler