Menu
CoddyTech

array Asosiatif 2D

Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 31 dari 68.

Saat kamu bekerja dengan array 2D menggunakan indeks numerik, kamu juga bisa membuat data yang lebih terstruktur dengan menggunakan array asosiatif pada tingkat utama maupun di dalam array bersarang. Pendekatan ini menggunakan kunci string, bukan angka, sehingga data menjadi jauh lebih deskriptif dan mudah dipahami.

Berikut cara membuat array asosiatif 2D dengan setiap elemen memiliki kunci string yang bermakna:

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

Kamu juga bisa mencampur pendekatan, menggunakan indeks numerik untuk array utama sambil menyimpan array asosiatif di dalamnya:

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

Struktur ini sangat ampuh untuk mengatur data kompleks seperti profil pengguna, katalog produk, atau skenario apa pun saat kamu perlu menyimpan beberapa property terkait untuk setiap item. Kunci string membuat kodemu menjelaskan dirinya sendiri dan jauh lebih mudah dipelihara daripada harus mengingat posisi numerik.

challenge icon

Tantangan

Mudah

Kamu akan menerima satu input: array asosiatif 2D yang merepresentasikan inventaris produk dalam format JSON. Setiap produk memiliki ID produk unik sebagai kunci, dan nilainya berupa array asosiatif yang berisi "name" dan "price" produk. Baca input, ubah string JSON menjadi array asosiatif 2D, lakukan iterasi melalui semua produk, lalu cetak informasi setiap produk dalam format: ID: [product_id] - Name: [name] - Price: $[price]

Setiap produk harus dicetak pada baris terpisah.

Format input: Satu baris yang berisi object JSON yang merepresentasikan inventaris produk (contoh: {"P001":{"name":"Laptop","price":999.99},"P002":{"name":"Mouse","price":25.50},"P003":{"name":"Keyboard","price":75.00}})

Output yang diharapkan: Setiap produk dicetak pada baris terpisah dalam format ID: [product_id] - Name: [name] - Price: $[price]

Coba sendiri

<?php
// Baca input JSON
$input = fgets(STDIN);

// Ubah JSON menjadi array asosiatif
$inventory = (array)json_decode($input, true);

// TODO: Tulis kodemu di bawah ini untuk menelusuri inventory dan mencetak setiap produk


?>
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler PHP online