Ders Notu
Çok Boyutlu Diziler
Çok boyutlu bir dizi, içerisinde bir ya da birden çok dizi barındıran dizilerdir. Aşağıdaki örnekte bilgiler adında bir diziye içerisinde 3 eleman barındıran 4 tane dizi atanmaktadır.
<?php
$bilgiler = array(
array("Ahmet", 35, "İstanbul"),
array("Beyza", 30, "İzmir"),
array("Mehmet", 20, "Antalya"),
array("Funda", 25, "Ankara")
);
?>
Çok boyutlu dizilerin elemanlarını ekrana yazdırmak için sayısal anahtarlı ya da metinsel anahtarlı dizilerde olduğu gibi print_r(), foreach() vb. fonksiyonlara başvurulabilir. Ancak çok boyutlu dizilerde, herhangi bir anahtarın içerisindeki belirli bir elemana doğrudan ulaşılmak isteniyorsa o zaman o elemanın konumunu belirten özel bir anahtar ikilisi -dizinin boyunu göre anahtar sayı artabilir- kullanılmalıdır.
Yukarıdaki örnekte bilgiler dizisinin son anahtarındaki kayıtta yer alan yaş bilgisine ulaşılmak isteniyorsa o zaman şöyle bir kod satırı yazılmalıdır.
echo $bilgiler[3][1];
$bilgiler[3][1] -> önce 3. anahtarda bulunan diziye gidecek sonrasında da o dizinin 1. anahtarını ekrana yazdıracaktır. Bu dizenin varsayılan başlangıç anahtarı 0 olduğu için beklenen ekran çıktısı 25 olacaktır.
<?php
$bilgiler = array(
array("Ahmet", 35, "İstanbul"),
array("Beyza", 30, "İzmir"),
array("Mehmet", 20, "Antalya"),
array("Funda", 25, "Ankara")
);
print_r($bilgiler); // Dizideki tüm elemanlar anahtarları ile beraber ekrana yazdırılacaktır
print_r($bilgiler[0]); // Dizi içerisindeki ilk dizideki tüm elemanlar anahtarları ile beraber ekrana yazdırılacaktır
print_r($bilgiler[3]); // Dizi içerisindeki son dizideki tüm elemanlar anahtarları ile beraber ekrana yazdırılacaktır
echo "<br>";
foreach($bilgiler as $bilgi){ // Dizi içerisindeki her bir eleman $bilgi değişkenine aktarılacaktır
echo "$bilgi
"; // $bilgi değişkeninde yine bir dizi olacağı için echo komutu ile bu elemanları yazdırmada hata alınacaktır
}
foreach($bilgiler as $bilgi){ // Dizi içerisindeki her bir eleman $bilgi değişkenine aktarılacaktır
foreach($bilgi as $yeniBilgi){ // $bilgi dizi değişkenindeki her bir eleman $yeniBilgi değişkenine aktarılacaktır
echo "$yeniBilgi<br>"; // Dizi içerisindeki her eleman tek tek yeni satırda olmak üzere ekrana yazdırılacaktır
}
}
echo $bilgiler[0][0]; // Dizinin ilk dizisinin ilk elemanı -> Ahmet
echo $bilgiler[0][1]; // Dizinin ilk dizisinin ikinci elemanı -> 35
echo $bilgiler[0][2]; // Dizinin ilk dizisinin üçüncü elemanı -> İstanbul
echo $bilgiler[3][2]; // Dizinin dördüncü dizisinin üçüncü elemanı -> Ankara
?>
Yukarıdaki örnekte oluşturulan bir çoklu dizinin elemanlarına ulaşmada kullanılan farklı yöntemler listelenmiştir.