Menu
Coddy logo textTech

Accessing Values by Key

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

Nun, da Sie verstehen, was assoziative Arrays sind, lernen wir, wie man Werte daraus abrufen kann. Genau wie indexierte Arrays numerische Positionen verwenden, verwenden 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 ist $array["key"]—legen Sie den Schlüssel als String in die Klammern, und PHP gibt den zugehörigen Wert zurück. Das ist viel lesbarer, als sich zu merken, dass der Name am Index 0 ist.

Sie können den abgerufenen Wert auch in einer Variable speichern, um ihn später zu verwenden:

<?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" anstelle von "name" würde einen Fehler verursachen, da PHP sie als unterschiedliche Schlüssel behandelt.

Manchmal trifft Daten als ein JSON-String ein statt als PHP-Array. JSON (JavaScript Object Notation) ist ein gängiges Textformat zur Darstellung strukturierter Daten. Die integrierte PHP-Funktion json_decode() konvertiert einen JSON-String in einen PHP-Wert. Wenn Sie true als zweiten Parameter übergeben, gibt sie ein assoziiertes Array statt eines Objekts zurück, sodass Sie Werte mit der vertrauten Syntax $array["key"] zugreifen können.

<?php
$json = '{"name": "Alice", "age": 25}';

$data = json_decode($json, true);

echo $data["name"]; // Alice
echo $data["age"];  // 25
?>
challenge icon

Aufgabe

Einfach

Lesen Sie eine Zeile Eingabe, die ein JSON-Objekt enthält, das die Informationen eines Buches darstellt (z. B. {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).

Lesen Sie dann zwei weitere Eingaben:

  • Ein String key1, der den ersten zu zugreifenden Schlüssel darstellt
  • Ein String key2, der den zweiten zu zugreifenden Schlüssel darstellt

Um den JSON-String in ein assoziatives Array umzuwandeln, verwenden Sie 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. Sobald dekodiert, können Sie Werte per Schlüssel zugreifen wie bei jedem assoziativen Array, z. B. $array["title"].

Erstellen Sie ein assoziatives Array aus der JSON-Eingabe, dann:

  1. Greifen Sie auf den Wert zu, der mit key1 assoziiert ist, und drucken Sie ihn aus
  2. Speichern Sie den Wert, der mit key2 assoziiert ist, in einer Variable namens $info
  3. Drucken Sie den in $info gespeicherten Wert aus

Drucken Sie jedes Ergebnis in einer separaten Zeile aus.

Beispiel:

Wenn die Eingaben {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}, title und author sind, sollte die Ausgabe sein:

The Great Gatsby
F. Scott Fitzgerald

Wenn die Eingaben {"name": "Laptop", "brand": "TechCo", "price": 999}, brand und price sind, sollte die Ausgabe sein:

TechCo
999

Spickzettel

Um Werte aus einem assoziativen Array abzurufen, verwenden Sie den Schlüssel in eckigen Klammern:

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

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

Die Syntax lautet $array["key"]. Schlüssel sind case-sensitive.

Sie können abgerufene Werte in Variablen speichern:

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

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

Verwenden Sie json_decode($jsonString, true), um einen JSON-String in ein assoziatives Array umzuwandeln. Das zweite Argument true weist PHP an, ein Array anstelle eines Objekts zurückzugeben:

$json = '{"name":"Alice","age":25}';
$data = json_decode($json, true);

echo $data["name"]; // Alice
echo $data["age"];  // 25

Probier es selbst

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

// Die zwei Schlüssel lesen
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));

// TODO: Schreibe deinen Code unten
// 1. Erstelle ein assoziatives Array aus der JSON-Eingabe mit json_decode
// 2. Greife auf den mit $key1 assoziierten Wert zu und drucke ihn
// 3. Speichere den mit $key2 assoziierten Wert in einer Variable namens $info
// 4. Drucke den in $info gespeicherten Wert

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