Menu
Coddy logo textTech

Asocjacyjne tablice 2D

Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 31 z 68.

Podczas pracy z tablicami 2D z użyciem indeksów liczbowych możesz także tworzyć bardziej uporządkowane dane, używając tablic asocjacyjnych zarówno na poziomie głównym, jak i w tablicach zagnieżdżonych. To podejście wykorzystuje klucze tekstowe zamiast liczb, dzięki czemu dane są znacznie bardziej opisowe i łatwiejsze do zrozumienia.

Oto jak utworzyć dwuwymiarową tablicę asocjacyjną, w której każdy element ma znaczące klucze tekstowe:

<?php
$students = [
    "alice" => [
        "name" => "Alice Johnson",
        "grade" => 92
    ],
    "bob" => [
        "name" => "Bob Smith", 
        "grade" => 87
    ],
    "charlie" => [
        "name" => "Charlie Brown",
        "grade" => 95
    ]
];
?>

Możesz także łączyć podejścia, używając indeksów numerycznych dla głównej tablicy, a wewnątrz niej tablic asocjacyjnych:

<?php
$users = [
    ["username" => "john_doe", "email" => "john@example.com"],
    ["username" => "jane_smith", "email" => "jane@example.com"]
];
?>

Ta struktura jest niezwykle przydatna do organizowania złożonych danych, takich jak profile użytkowników, katalogi produktów czy dowolne sytuacje, w których trzeba przechowywać wiele powiązanych właściwości każdego elementu. Klucze tekstowe sprawiają, że kod dokumentuje się sam i jest znacznie łatwiejszy w utrzymaniu niż kod wymagający zapamiętywania pozycji liczbowych.

challenge icon

Wyzwanie

Łatwy

Otrzymasz jedno wejście: dwuwymiarową tablicę asocjacyjną reprezentującą zapasy produktów w formacie JSON. Każdy produkt ma unikalny identyfikator produktu jako klucz, a wartością jest tablica asocjacyjna zawierająca "name" i "price" produktu. Wczytaj dane wejściowe, przekonwertuj ciąg JSON na dwuwymiarową tablicę asocjacyjną, przeiteruj po wszystkich produktach i wypisz informacje o każdym produkcie w formacie: ID: [product_id] - Name: [name] - Price: $[price]

Każdy produkt powinien być wypisany w osobnym wierszu.

Format danych wejściowych: Jeden wiersz zawierający obiekt JSON reprezentujący zapasy produktów (przykład: {"P001":{"name":"Laptop","price":999.99},"P002":{"name":"Mouse","price":25.50},"P003":{"name":"Keyboard","price":75.00}})

Oczekiwany wynik: Każdy produkt wypisany w osobnym wierszu w formacie ID: [product_id] - Name: [name] - Price: $[price]

Spróbuj swoich sił

<?php
// Odczytaj dane wejściowe JSON
$input = fgets(STDIN);

// Przekształć JSON w tablicę asocjacyjną
$inventory = (array)json_decode($input, true);

// TODO: Napisz poniżej kod, który przejdzie przez inventory i wypisze każdy produkt


?>
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator PHP online