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.
Tantangan
MudahKamu 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
?>Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Fungsi Lanjutan
Fungsi AnonimClosure dan 'use'Fungsi PanahFungsi CallbackMenggunakan 'call_user_func'Fungsi VariabelMengirim dengan ReferensiFungsi RekursifUlasan: Ragam Fungsi4Array Multidimensi
Membuat array 2DMengakses Elemen array 2DMengubah Elemen array 2DMelakukan Perulangan dengan loop Bersarangarray Asosiatif 2DRekap: Latihan Kisi Sederhana2Manipulasi array Lanjutan
Menambahkan dengan 'array_push'Menghapus dengan 'array_pop'Menambahkan dengan 'array_unshift'Menghapus dengan 'array_shift'Menggabungkan array berindeksMenggabungkan array asosiatifMengambil bagian dengan 'array_slice'Nilai dengan 'in_array'Kunci dengan 'array_search'Rekap: Latihan playlist3Mengurutkan array
Urutkan array berindeks secara menaikUrutkan array berindeks secara menurunUrutkan assoc array berdasarkan nilaiUrutkan assoc array berdasarkan kunciPengurutan urutan alamiPengurutan khusus dengan 'usort'Rangkuman: Pengurutan papan peringkatLatihan sendiri: Compiler PHP online