Menu
Coddy logo textTech

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.

challenge icon

Aufgabe

Einfach

Du 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


?>
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 Logik & Ablauf

Übe selbstständig: Online-PHP-Compiler