Diziler aynı türden ya da farklı türden birden fazla değeri hafızada tutmaya yarayan değişken yapılarıdır. Örneğin bir bilgisayarın donanım bilgilerini hafızada tutmak için harddisk, işlemci, ram, ekran kartı gibi 4 adet değişken tanımlamak gerekir. Bu programlama açısından sıkıntı olacağı gibi, veri listeleme açısından da karışıklık yaratabilir. Bu nedenle bilgisayar adında bir dizi tanımlayarak dizinin içerisine birden fazla bilgi aktarabiliriz.
Daha iyi anlamak için 4 çekmeceli bir dolap olduğunu hayal edelim. Bu dolabın birinci çekmecesinde elma, ikincisinde armut, üçüncüsünde üzüm ve dördüncüsünde çilek olsun. Şimdi bu diziyi nasıl tanımlayacağımıza bakalım:
Dizi tanımlama işlemi şu şekilde yapılır;
1 2 3 |
<?php $meyveler = array("Elma", "Armut","Üzüm","Çilek"); // 4 Elemanlı meyveler dizisi oluşturduk ?> |
Dizinin elemanlarına erişmek için ise köşeli parantezler arasına indis numarası yazılır. Dizi indisi sıfırdan başlar yani dizinin ilk elemanına erişmek için parantezler içerisine “0” rakamı yazılır.
Örnek olarak yukarıda tanımladığımız meyveler dizisinin elemanlarını ekrana yazdıralım;
1 2 3 4 5 6 |
<?php echo $meyveler[0]; // Ekranda "Elma" yazar echo $meyveler[1]; // Ekranda "Armut" yazar echo $meyveler[2]; // Ekranda "Üzüm" yazar echo $meyveler[3]; // Ekranda "Çilek" yazar ?> |
Diziler ilk tanımlandıklarında değer atama zorunluluğu yoktur. Diziyi tanımlayıp değerini sayfa içerisinde herhangi bir yerde atayabilirsiniz. Ancak dizilerin de diğer değişkenlerde olduğu gibi kapsama alanı vardır.
1 2 3 4 |
<?php $ogrenci; // ogrenci adında dizi oluşturduk $ogrenci = array("Ali", "Tasarım", 125); // diziye öğrenci adı, bölümü ve okul numarasını atadık ?> |
Yukarıdaki kodumuzda dizinin sıfırıncı ve birinci indisinden dönen değer string türü iken ikinci indisinden dönen değer integer türündendir.
Çok Boyutlu Diziler: Çok boyutlu dizileri, dizi içerisinde dizi oluşturmak gibi düşünebiliriz. Örnek olarak bir okul düşünelim, okul 3 katlı ve her katta 3 oda olsun. Birinci katta tasarım, yazılım ve donanım sınıfları, ikinci katta sistem, veritabanı, mikrodenetleyici sınıfları, üçüncü katta müdür odası, öğretmenler odası ve kantin olsun.
Şimdi dizimizi tasarlayalım.
1 2 3 4 5 6 7 |
<?php $okul = array( array("Tasarım", "Yazılım", "Donanım"), array("Sistem", "Veritabanı", "Mikrodenetleyici"), array("Müdür Odası", "Öğretmenler Odası", "Kantin") ); ?> |
Görüldüğü üzere 2 boyutlu dizimizi oluşturduk. Şimdi bu dizinin elemanlarına nasıl erişeceğimizi inceleyelim.
1 2 3 4 5 6 7 8 |
<?php // birinci kata ikinci odaya erişmek için echo $okul[0][1]; // ekrana "Yazılım" yazar // ikinci katta birinci odaya erişmek için echo $okul[1][0]; // ekrana "Sistem" yazar // müdür odasına erişmek için echo $okul[2][0]; // ekrana "Müdür Odası" yazar ?> |
Dizilerin indis numaralarına isim verebiliriz ve köşeli parantezler içerisine ismini yazarak da içeriğine ulaşabiliriz;
1 2 3 4 5 6 7 |
<?php $okul = array( "Kat1" => array("Oda1" => "Tasarım", "Oda2" => "Yazılım","Oda3" => "Donanım"), "Kat2" => array("Oda1" => "Sistem", "Oda2" => "Veritabanı", "Oda3" => "Mikrodenetleyici"), "Kat3" => array("Oda1" => "Müdür Odası","Oda2" => "Öğretmenler Odası", "Oda3" => "Kantin") ); ?> |
Böyle bir dizinin elemanlarına erişmek için ise;
1 2 3 4 5 6 7 8 |
<?php // birinci kata ikinci odaya erişmek için echo $okul["Kat1"]["Oda2"]; // ekrana "Yazılım" yazar // ikinci katta birinci odaya erişmek için echo $okul["Kat2"]["Oda1"]; // ekrana "Sistem" yazar // müdür odasına erişmek için echo $okul["Kat3"]["Oda1"]; // ekrana "Müdür Odası" yazar ?> |
kod yapısı kullanılır.