Memahami array multidimensi pada PHP
Apa itu array multidimensi ?
Array multidimensi adalah array yang mengandung satu atau beberapa array lain didalamnya atau bisa dikatakan array dalam array. Sehingga kita dapat membuat array dimensi dua maupun array dimensi tiga.Apa itu array dua dimensi ?
Array dua dimensi adalah array yang membutuhkan dua index dalam mengakses elemen-elemennya. Index dalam array dua dimensi diwakili oleh baris (row) dan kolom (column) seperti yang ditunjukkan oleh Gambar.1 dibawah ini :Contoh Program Array dua dimensi
Pada Contoh.1 kita akan membuat program array dua dimensi dengan index arraynya bersifat numerik.Contoh.1
<?php
//Membuat array dua dimensi
$nilai=array(
array(90,65,83),
array(90,78,87),
array(78,90,78)
);
//Akses elemen array 2 dimensi secara manual
echo "<strong>nilai array ditampilkan secara manual:</strong><br>";
echo $nilai[0][0]." ".$nilai[0][1]." ".$nilai[0][2]."<br>";
echo $nilai[1][0]." ".$nilai[1][1]." ".$nilai[1][2]."<br>";
echo $nilai[2][0]." ".$nilai[2][1]." ".$nilai[2][2]."<br><br>";
//Akses elemen array dengan menggunakan looping
echo "<b>Nilai array ditampilkan dengan looping bersarang :</b><br>";
for($baris=0;$baris<count($nilai);$baris++)
{
for($kolom=0;$kolom<count($nilai[$baris]);$kolom++)
{
echo $nilai[$baris][$kolom]." ";
}
echo "<br>";
}
?>
Outputnya ditunjukkan oleh Gambar.2 dibawah ini :
Pada Contoh.2.1 kita akan membuat program array dua dimensi dengan indexnya bersifat associative. Pada Contoh.2.1 index baris berupa numerik dan index kolom dinyatakan dalam bentuk label(string).
Contoh.2.1
<?php
echo "Associative Array Dimensi Dua:<br>";
$nilai=array(
array("Fisika"=>90,"Matematika"=>65,"Kimia"=>83),
array("Fisika"=>90,"Matematika"=>78,"Kimia"=>87),
array("Fisika"=>78,"Matematika"=>90,"Kimia"=>78)
);
// Mengakses elemen array dengan looping
echo "<ul>";
for($r=0;$r<count($nilai);$r++)
{
echo "<li>";
foreach($nilai[$r] as $key=>$value)
{
echo $key." = ".$value." ";
}
echo "</li>";
echo "<br><br>";
}
echo "</ul>";
?>
Outputnya diperlihatkan oleh Gambar.3 dibawah ini :
Untuk Contoh.2.2 dibawah ini, index baris dan kolom untuk array dua dimensi kedua-duanya berupa label (string).
Contoh.2.2
<?php
$nama = array(
"Doni" => array ("Fisika" => 90, "Matematika" => 65, "Kimia" => 83 ),
"Didi" => array ("Fisika" => 90, "Matematika" => 78, "Kimia" => 87 ),
"Reza" => array ("Fisika" => 78, "Matematika" => 90, "Kimia" => 78 )
);
/* Mengakses nilai array dua dimensi secara manual */
echo "<b>Cetak Nilai secara manual</b>"."</br>";
// Untuk Doni
echo "Nilai Doni dalam mata pelajaran Fisika : ".$nama['Doni']['Fisika'] . "<br />" ;
echo "Nilai Doni dalam mata pelajaran Matematika : ".$nama['Doni']['Matematika'] . "<br />" ;
echo "Nilai Doni dalam mata pelajaran Kimia : ".$nama['Doni']['Matematika'] . "<br />" ;
// Untuk Didi
echo "Nilai Didi dalam mata pelajaran Fisika : ".$nama['Didi']['Fisika'] . "<br />" ;
echo "Nilai Didi dalam mata pelajaran Matematika : ".$nama['Didi']['Matematika'] . "<br />" ;
echo "Nilai Didi dalam mata pelajaran Kimia : ".$nama['Didi']['Matematika'] . "<br />" ;
// Untuk Didi
echo "Nilai Reza dalam mata pelajaran Fisika : ".$nama['Reza']['Fisika'] . "<br />" ;
echo "Nilai Reza dalam mata pelajaran Matematika : ".$nama['Reza']['Matematika'] . "<br />" ;
echo "Nilai Reza dalam mata pelajaran Kimia : ".$nama['Reza']['Matematika'] . "<br /></br>" ;
/*Mengakses nilai array dua dimensi dengan foreach*/
echo "<b>Cetak Nilai dengan looping foreach bersarang</b>"."</br>";
foreach ($nama as $mahasiswa => $nilai)
{
foreach ($nilai as $nama => $value)
{
//echo "Nilai".$mahasiswa." alam mata pelajaran ".$value."<br>";
echo "Nilai"." ".$mahasiswa." dalam mata pelajaran ".$nama." adalah"." ".$value."<br>";
}
}
?>
Outputnya ditunjukkan oleh Gambar.4 dibawah ini :
Tutorial yang berhubungan dengan array lainnya :