Array Multidimensi
Membangun dan menelusuri array yang berisi array.
Array Multidimensi adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.
Larik Multidimensi
Larik multidimensi adalah larik yang setiap elemennya juga merupakan larik. Larik ini umum digunakan untuk data terstruktur seperti hasil basis data atau struktur pohon konfigurasi.
Pembuatan Larik 2D
Buat dan akses larik dua dimensi:
<?php
$matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];
echo $matrix[1][2]; // 6 (row 1, col 2)
$matrix[0][0] = 99;
echo $matrix[0][0]; // 99Larik Berisi Larik Asosiatif
Kumpulan hasil basis data sering kali berupa larik yang berisi larik asosiatif:
<?php
$users = [
['id' => 1, 'name' => 'Alice', 'role' => 'admin'],
['id' => 2, 'name' => 'Bob', 'role' => 'user'],
['id' => 3, 'name' => 'Carol', 'role' => 'user'],
];
echo $users[0]['name']; // Alice
echo count($users); // 3Menelusuri Larik 2D
Gunakan foreach bersarang untuk menelusuri semua baris dan kolom:
<?php
$products = [
['name' => 'Widget', 'price' => 9.99],
['name' => 'Gadget', 'price' => 24.99],
];
foreach ($products as $product) {
echo $product['name'] . ': $' . $product['price'] . PHP_EOL;
}Mengakses Kunci Bersarang dengan Aman
Gunakan operator penggabungan NULL untuk mengakses kunci bersarang yang mungkin tidak ada dengan aman:
<?php
$config = [
'database' => ['host' => 'localhost', 'port' => 3306],
'cache' => ['driver' => 'redis'],
];
$port = $config['database']['port'] ?? 3306;
$password = $config['database']['password'] ?? '';
echo $port; // 3306
echo $password; // (empty)Menambahkan ke Larik Bersarang
Tambahkan elemen jauh di dalam larik multidimensi:
<?php
$app = [];
$app['settings']['theme'] = 'dark';
$app['settings']['lang'] = 'en';
$app['users'][] = ['name' => 'Alice'];
$app['users'][] = ['name' => 'Bob'];
echo count($app['users']); // 2
echo $app['settings']['theme']; // darkarray_column()
array_column() mengekstrak satu kolom dari larik 2D:
<?php
$users = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Carol'],
];
$names = array_column($users, 'name');
print_r($names); // ['Alice', 'Bob', 'Carol']
// Re-index by id
$byId = array_column($users, null, 'id');
echo $byId[2]['name']; // BobMengurutkan Larik 2D
Urutkan baris berdasarkan nilai bidang menggunakan usort():
<?php
$products = [
['name' => 'C Item', 'price' => 30],
['name' => 'A Item', 'price' => 10],
['name' => 'B Item', 'price' => 20],
];
usort($products, fn($a, $b) => $a['price'] <=> $b['price']);
foreach ($products as $p) {
echo $p['name'] . PHP_EOL; // A Item, B Item, C Item
}Operasi Rekursif dengan array_walk_recursive
Terapkan fungsi panggilan balik ke setiap simpul daun dalam larik bersarang dengan array_walk_recursive():
<?php
$data = ['a' => 'hello', 'b' => ['c' => 'world', 'd' => 'php']];
array_walk_recursive($data, function(&$val) {
$val = strtoupper($val);
});
print_r($data);
// ['a'=>'HELLO', 'b'=>['c'=>'WORLD','d'=>'PHP']]JSON dan Larik Multidimensi
Larik multidimensi PHP dapat dipetakan langsung ke objek dan larik JSON:
<?php
$data = [
'user' => ['id' => 1, 'name' => 'Alice'],
'scores' => [95, 87, 92],
'active' => true,
];
$json = json_encode($data, JSON_PRETTY_PRINT);
echo $json;
$decoded = json_decode($json, true); // true = assoc array
echo $decoded['user']['name']; // Alicearray_merge vs array_replace untuk Larik Bersarang
array_merge tidak bersifat rekursif; gunakan array_replace_recursive untuk menggabungkan larik bersarang dengan benar:
<?php
$defaults = ['db' => ['host' => 'localhost', 'port' => 3306]];
$custom = ['db' => ['host' => 'production.server.com']];
$config = array_replace_recursive($defaults, $custom);
echo $config['db']['host']; // production.server.com
echo $config['db']['port']; // 3306 — preserved from defaultsPemeriksaan Singkat
Fungsi mana yang mengekstrak satu kolom nilai dari larik 2D?
Ringkasan: Larik Multidimensi
Poin-poin utama:
- Sarangkan larik hingga kedalaman berapa pun
- Gunakan
??untuk mengakses kunci bersarang yang hilang dengan aman array_column()mengekstrak kolom atau mengindeks ulang berdasarkan kunciusort()dengan pembanding dapat mengurutkan berdasarkan bidang apa punarray_walk_recursive()untuk transformasi mendalamarray_replace_recursive()untuk penggabungan mendalam
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Array Multidimensi” gratis?
Ya — teks lengkap “Array Multidimensi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Array Multidimensi”?
Membangun dan menelusuri array yang berisi array. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai PHP Academy?
Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Array Multidimensi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Array Berindeks dan Asosiatif
- Array Multidimensi
- Mengurutkan dan Mencari Array
- Fungsi Transformasi Array