PHP mendukung array multidimensi yang memiliki kedalaman dua, tiga, empat, lima, atau lebih. Namun, array yang lebih dari tiga level sulit untuk dikelola bagi kebanyakan orang.
Dimensi array menunjukkan jumlah indeks yang diperlukan untuk memilih elemen.
- Untuk array dua dimensi, memerlukan dua indeks untuk memilih elemen
- Untuk array tiga dimensi, memerlukan tiga indeks untuk memilih elemen
PHP – Array Dua Dimensi
Array dua dimensi adalah larik-larik (larik tiga dimensi adalah larik larik larik).
Pertama, lihat tabel berikut :
NamaStockTerjualVolvo2218BMW1513Saab52Land Rover1715Kita dapat menyimpan data dari tabel di atas dalam array dua dimensi, seperti ini:
$cars = array (
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
Sekarang array dua dimensi $cars berisi empat array dan ini memiliki dua indeks: baris dan kolom.
Untuk mendapatkan akses ke elemen array $cars kita harus menunjuk ke dua indeks (baris dan kolom):
Contoh :
<?php $cars = array ( array("Volvo",22,18), array("BMW",15,13), array("Saab",5,2), array("Land Rover",17,15) ); echo $cars[0][0].": In stock: ".$cars[0][1].", terjual: ".$cars[0][2].".<br>"; echo $cars[1][0].": In stock: ".$cars[1][1].", terjual: ".$cars[1][2].".<br>"; echo $cars[2][0].": In stock: ".$cars[2][1].", terjual: ".$cars[2][2].".<br>"; echo $cars[3][0].": In stock: ".$cars[3][1].", terjual: ".$cars[3][2].".<br>"; ?> //Output : Volvo: In stock: 22, terjual: 18. //Output : BMW: In stock: 15, terjual: 13. //Output : Saab: In stock: 5, terjual: 2. //Output : Land Rover: In stock: 17, terjual: 15.
Kita juga bisa meletakkan perulangan fordi dalam perulangan for lainnya untuk mendapatkan elemen dari array $cars (kita masih harus menunjuk ke dua indeks):
Array multidimensi merupakan array yang menyimpan data array yang lain. Jenis array ini sering ditemui dalam kasus komputasi ilmiah seperti pembuatan matriks.
Membuat Array Multidimensi
Untuk membuat array multidimensi menggunakan array terindeks kita bisa dengan meletakkan array di dalam kurung siku lagi <?php # menggunakan kurung siku $matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; var_dump($matrix);3.
$array2d = [[array]]Contoh penerapan menggunakan kurung siku.
<?php # menggunakan kurung siku $matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; var_dump($matrix);Atau jika menggunakan fungsi array().
# menggunakan fungsi array $matrix = array( [1, 2, 3], [4, 5, 6], [7, 8, 9] ); var_dump($matrix);Array multidimensi tidak mewajibkan array di dalamnya memiliki panjang dan data bertipe sama. Hal ini karena sifat array di PHP itu sendiri.
<?php $arr = [ [1, "Dani", [2, 3]], [4.5, false], ["Endang", true, 5, [4, 5, 6]] ]; var_dump($arr);Sedangkan berikut contoh array multidimensi yang dibuat menggunakan array assosiatif.
<?php $students = [ [ "name" => "Basit", "email" => "[email protected]" ], [ "name" => "Reza", "email" => "[email protected]" ], [ "name" => "Haris", "email" => "[email protected]" ], ];Mengakses Data Array Multidimensi
Untuk mengakses data array multidimensi kita perlu adanya dua kurung siku di belakang variabel array.
echo $array[outer_index][inner_index];Kurung siku pertama digunakan untuk mengakses indeks tiap array. Jadi ia akan memilih array mana yang akan diproses.
Sedangkan kurung siku kedua digunakan untuk mengakses indeks tiap data dalam array yang sudah dipilih sebelumnya.
Kalau bingung perhatikan ilustrasi berikut.
[email protected]" ], [ "name" => "Reza", "email" => "[email protected]" ], [ "name" => "Haris", "email" => "[email protected]" ], ];
Maka kurung siku kedua harus mendefinisikan key dari data terkait setelah indeks dari array yang menampung data tersebut dipilih.
echo "Perkenalkan nama saya adalah " . $students[2]["name"];Menampilkan Data Array dengan Perulangan
Bagaimana kalau ingin menampilkannya menggunakan perulangan?
Maka kita memerlukan perulangan bersarang seperti ini.
<?php $students = [ ["Wahit", "Basit", "Huda"], ["Reza", "Rizal", "Deni"], ["Anang", "Nova", "Haris"] ]; for ($i = 0; $i < count($students); $i++) { for ($j = 0; $j < count($students[$i]); $j++) { echo "indeks ke [$i][$j] : " . $students[$i][$j] . PHP_EOL; } }Perulangan bersarang maksudnya di dalam perulangan ada perulangan lagi.
Keluaran:
<?php # menggunakan kurung siku $matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; var_dump($matrix);0Jika arraynya berisi array asosiatif maka kita bisa pakai foreach untuk perulangan kedua.
<?php # menggunakan kurung siku $matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; var_dump($matrix);1Keluaran:
<?php # menggunakan kurung siku $matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; var_dump($matrix);2Bingung? Santai, untuk perulangannya akan dijelaskan di materi perulangan itu sendiri jadi untuk sementara cukup ikuti saja.