2D assoziative Arrays
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy. Lektion 31 von 68.
Während du mit 2D-Arrays unter Verwendung numerischer Indizes gearbeitet hast, kannst du auch strukturiertere Daten erstellen, indem du sowohl auf der Hauptebene als auch innerhalb der verschachtelten Arrays assoziative Arrays verwendest. Dieser Ansatz verwendet Zeichenfolgenschlüssel anstelle von Zahlen, wodurch deine Daten viel aussagekräftiger und leichter verständlich werden.
So erstellst du ein assoziatives 2D-Array, bei dem jedes Element aussagekräftige Zeichenfolgenschlüssel hat:
<?php
$students = [
"alice" => [
"name" => "Alice Johnson",
"grade" => 92
],
"bob" => [
"name" => "Bob Smith",
"grade" => 87
],
"charlie" => [
"name" => "Charlie Brown",
"grade" => 95
]
];
?>Du kannst Ansätze auch kombinieren, indem du numerische Indizes für das Hauptarray verwendest und darin assoziative Arrays beibehältst:
<?php
$users = [
["username" => "john_doe", "email" => "john@example.com"],
["username" => "jane_smith", "email" => "jane@example.com"]
];
?>Diese Struktur ist unglaublich leistungsfähig, um komplexe Daten wie Benutzerprofile, Produktkataloge oder jedes Szenario zu organisieren, in dem du mehrere zusammengehörige Eigenschaften für jedes Element speichern musst. Die Zeichenfolgenschlüssel machen deinen Code selbstdokumentierend und viel einfacher zu warten, als sich numerische Positionen merken zu müssen.
Aufgabe
EinfachDu erhältst eine Eingabe: ein zweidimensionales assoziatives Array, das einen Produktbestand im JSON-Format darstellt. Jedes Produkt hat eine eindeutige Produkt-ID als Schlüssel, und der Wert ist ein assoziatives Array, das den "name" und "price" des Produkts enthält. Lies die Eingabe ein, wandle den JSON-String in ein zweidimensionales assoziatives Array um, durchlaufe alle Produkte und gib die Informationen zu jedem Produkt im Format ID: [product_id] - Name: [name] - Price: $[price] aus.
Jedes Produkt sollte in einer eigenen Zeile ausgegeben werden.
Eingabeformat: Eine Zeile mit einem JSON-Objekt, das den Produktbestand darstellt (Beispiel: {"P001":{"name":"Laptop","price":999.99},"P002":{"name":"Mouse","price":25.50},"P003":{"name":"Keyboard","price":75.00}})
Erwartete Ausgabe: Jedes Produkt in einer eigenen Zeile im Format ID: [product_id] - Name: [name] - Price: $[price] ausgegeben
Probier es selbst
<?php
// Lies die JSON-Eingabe
$input = fgets(STDIN);
// Konvertiere JSON in ein assoziatives Array
$inventory = (array)json_decode($input, true);
// TODO: Schreibe deinen Code darunter, um das Inventar zu durchlaufen und jedes Produkt auszugeben
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Funktionen
Anonyme FunktionenClosures und 'use'Arrow FunctionsCallback-FunktionenVerwendung von 'call_user_func'VariablenfunktionenReferenzübergabeRekursive FunktionenRückblick: Funktions-Medley4Mehrdimensionale Arrays
Ein 2D-Array erstellenZugriff auf 2D-Array-ElementeÄndern von 2D-Array-ElementenIterieren mit verschachtelten Schleifen2D assoziative ArraysZusammenfassung: Einfache Gitter-Übung2Fortgeschrittene Array-Manipulationen
Hinzufügen mit 'array_push'Entfernen mit 'array_pop'Hinzufügen mit 'array_unshift'Entfernen mit 'array_shift'Indizierte Arrays zusammenführenAssoziative Arrays zusammenführenExtrahieren mit 'array_slice'Werte mit 'in_array'Schlüssel mit 'array_search'Rückblick: Playlist-Übung3Arrays sortieren
Indizierte Arrays aufsteigend sortierenIndizierte Arrays absteigend sortierenAssoziative Arrays nach Wert sortierenAssoziative Arrays nach Schlüssel sortierenNatürliche SortierungBenutzerdefiniertes Sortieren mit 'usort'Recap: Leaderboard-SortierungÜbe selbstständig: Online-PHP-Compiler