Önceki örneklerde PHP'de index bazlı dizilerin kullanımı konusunda yazılar paylaşmıştım.
bkz: PHP'de Dizi Tanımlamak (Yeni Vektör ya da Matris Eklemek)
bkz: PHP'de Dizinin Eleman Sayısını Bulmak
bkz: PHP'de Dizi Elemanlarını Yazdırmak
bkz: PHP'de dizi elemanının değerini güncellemek
bkz: PHP'de boş dizi tanımlamak
bkz: PHP'de dizi elemanı boş mu kontrol etmek
bkz: PHP'de diziye eleman eklemek
Üstteki tüm konular index bazlı diziler için hazırlanmıştır. index bazlı dizilerde 0 sayısından başlayarak herhangi bir tamsayıya karşılık gelen değerler eşlenerek bir koleksiyon oluşturulur. Ancak PHP, index bazlı dizilere ek olarak ilişkisel dizilerin kullanımına da olanak sağlamaktadır. İlişkisel dizilerin anlaşılması için index bazlı dizilerle karşılaştırarak örnekler verelim.
Örnek: Haftanın günlerini index bazlı ve ilişkisel bazda birer dizi halinde tanımlayın.
Çözüm:
<?php
$gunler_index = ["Pazartesi", "Salı", "Çarşamba","Perşembe","Cuma", "Cumartesi", "Pazar"];
$gunler_iliskisel = ["Gun1" => "Pazartesi", "Gun2" => "Salı", "Gun3" => "Çarşamba","Gun4" => "Perşembe","Gun5" => "Cuma", "Gun6" => "Cumartesi", "Gun7" => "Pazar"];
var_dump($gunler_index);
echo "<br>";
var_dump($gunler_iliskisel);
?>
Çıktı:
array(7) { [0]=> string(9) "Pazartesi" [1]=> string(5) "Salı" [2]=> string(10) "Çarşamba" [3]=> string(9) "Perşembe" [4]=> string(4) "Cuma" [5]=> string(9) "Cumartesi" [6]=> string(5) "Pazar" }
array(7) { ["Gun1"]=> string(9) "Pazartesi" ["Gun2"]=> string(5) "Salı" ["Gun3"]=> string(10) "Çarşamba" ["Gun4"]=> string(9) "Perşembe" ["Gun5"]=> string(4) "Cuma" ["Gun6"]=> string(9) "Cumartesi" ["Gun7"]=> string(5) "Pazar" }
Açıklama: Her iki dizide de bir eşleme (mapping) olduğunu görebiliriz, ama üstteki index bazlı dizide index numaraları (key) artan tamsayılar şeklinde 0'dan başlayarak otomatik olarak atanırken alttaki ilişkisel dizide ise istediğimiz key'leri kendimiz istediğimiz veri türünde yazabiliyoruz.
Not: Programlama dillerinde bu uygulama key & value (anahtar ve değer) ikilisi olarak geçmektedir.
Örnek: ilişkisel bir dizi tanımlayın ve key ile value değerlerini foreach döngüsünü (bkz: PHP'de foreach döngüsü kullanımı ve örnekleri) kullanarak yazdırın.
<?php
$gunler = ["Pzts" => "Pazartesi", "Sal" => "Salı", "Car" => "Çarşamba","Per" => "Perşembe","Cma" => "Cuma", "Cmts" => "Cumartesi", "Pzr" => "Pazar"];
foreach ($gunler as $gun => $gunadi)
{
echo $gun ." anahtarı için değer: ". $gunadi . "<br>";
}
?>
Çıktı:
Pzts anahtarı için değer: Pazartesi
Sal anahtarı için değer: Salı
Car anahtarı için değer: Çarşamba
Per anahtarı için değer: Perşembe
Cma anahtarı için değer: Cuma
Cmts anahtarı için değer: Cumartesi
Pzr anahtarı için değer: Pazar