2D assoziative Arrays
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 31 von 68.
Während Sie bisher mit 2D-Arrays unter Verwendung numerischer Indizes gearbeitet haben, können Sie auch strukturiertere Daten erstellen, indem Sie assoziative Arrays sowohl auf der Hauptebene als auch innerhalb der verschachtelten Arrays verwenden. Dieser Ansatz verwendet String-Keys anstelle von Zahlen, wodurch Ihre Daten viel aussagekräftiger und leichter verständlich werden.
So erstellen Sie ein zweidimensionales assoziatives Array, bei dem jedes Element aussagekräftige String-Schlüssel hat:
<?php
$students = [
"alice" => [
"name" => "Alice Johnson",
"grade" => 92
],
"bob" => [
"name" => "Bob Smith",
"grade" => 87
],
"charlie" => [
"name" => "Charlie Brown",
"grade" => 95
]
];
?>Sie können die Ansätze auch mischen, indem Sie numerische Indizes für das Haupt-Array verwenden, während Sie assoziative Arrays darin beibehalten:
<?php
$users = [
["username" => "john_doe", "email" => "john@example.com"],
["username" => "jane_smith", "email" => "jane@example.com"]
];
?>Diese Struktur ist unglaublich leistungsfähig für die Organisation komplexer Daten wie Benutzerprofile, Produktkataloge oder jedes Szenario, in dem Sie mehrere zusammengehörige Eigenschaften für jedes Element speichern müssen. Die String-Schlüssel machen Ihren Code selbstdokumentierend und viel einfacher zu warten, als sich numerische Positionen merken zu müssen.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Aufgabe
EinfachSie erhalten eine Eingabe: ein 2D-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 den "price" des Produkts enthält. Lesen Sie die Eingabe, konvertieren Sie den JSON-String in ein 2D-assoziatives Array, iterieren Sie durch alle Produkte und geben Sie die Informationen jedes Produkts im folgenden Format aus: ID: [product_id] - Name: [name] - Price: $[price]
Jedes Produkt sollte in einer separaten Zeile ausgegeben werden.
Eingabeformat: Eine Zeile, die ein JSON-Objekt enthält, 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 wird in einer separaten Zeile im Format ID: [product_id] - Name: [name] - Price: $[price] ausgegeben.
Spickzettel
Sie können 2D-assoziative Arrays erstellen, indem Sie String-Schlüssel sowohl auf der Hauptebene als auch innerhalb verschachtelter Arrays verwenden:
<?php
$students = [
"alice" => [
"name" => "Alice Johnson",
"grade" => 92
],
"bob" => [
"name" => "Bob Smith",
"grade" => 87
]
];
?>Sie können auch Ansätze mischen, indem Sie numerische Indizes für das Haupt-Array mit assoziativen Arrays darin verwenden:
<?php
$users = [
["username" => "john_doe", "email" => "john@example.com"],
["username" => "jane_smith", "email" => "jane@example.com"]
];
?>String-Schlüssel machen Ihre Daten selbstdokumentierend und einfacher zu warten als numerische Positionen.
Probier es selbst
<?php
// JSON-Eingabe lesen
$input = fgets(STDIN);
// JSON in ein assoziatives Array umwandeln
$inventory = (array)json_decode($input, true);
// TODO: Schreiben Sie unten Ihren Code, 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