Merhaba arkadaşlar. Mobilhanem.com için hazırladığımız Php derslerimize PHP Diziler konusu ile devam ediyoruz. Diziler çoklu veri tutmaya yarayan yapılardır. Örneğin aylar ile işlem yaptığımızı varsayalım. Her ay için bir değişken oluşturmaktansa ayların hepsini bir diziye atarsak tek değişkende tüm ayları tanımlamış oluruz. Diziler tüm programlama dillerinde çok fazla kullanılmaktadır. Dizilerin kullanımını beraber inceleyelim.
Dizilerin Genel Özellikleri
- Diziler array() anahtar kelimesi ile oluşturulur.
- Dizinin her elemanının bir indis değeri olur ve bu indislere biz müdahale etmediğimiz sürece indis numarası 0 dan başlar.
- Dizinin boyutu birden fazla olabilir.
- Dizinin indisi string bir değer olabilir.
- Dizi elemanlarına köşeli parantezler içine indis değeri yazılarak ulaşılır. [INDIS]
- Dizinin eleman sayısına count() fonksiyonu ile ulaşırız.
Dizilerin genel özelliklerinden bahsettik. şimdi php de dizi nasıl oluşturulur görelim.
Php Dizi Oluşturma
<?php $dizi = array("eleman1","eleman2"); ?>
Php’de array() anahtar kelimesi ile dizi oluşturulur.
Dizi oluşturmanın bir çok şekli vardır biz bunlardan genelde kullanılanlara bir göz atalım.
<?php // kullanım şekli 1 // default dizi oluşturma şekli $dizi = array("eleman1","eleman2",1,2,3); // kullanım şekli 2 // dizi key değerine istediğimiz stringi vererek oluşturmak //böylelikle anahtar - değer şeklinde veri tutulur $dizi = array("ad" => "Vehbi", "yas" => 21,"site" => "mobilhanem.com"); // kullanım şekli 3 // direk dizi elemanı ekleme $ay[1] = "ocak"; $ay[2] = "şubat"; ?>
Genel olarak dizi kullanım şekilleri yukarıdaki gibidir. Hangi kullanım şekline ihtiyaç duyarsak o yapıyı kullanırız. Bir kaç örnek yapacak olursak:
Örnek: Haftanın Günlerini for döngüsü ile dizi kullanarak ekrana yazdıralım.
$gunler = array("Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi","Pazar"); for($i = 0; $i<count($gunler); $i++) { echo $gunler[$i]."<br/>"; }
Örneğimizi açıklayacak olursak:
- Dizimizi oluşturduk.
- For döngüsü ile dizi içine geziyoruz.
- Burada önemli nokta dizi indisi 0 dan başladığı için for döngüsünde koşul olarak $i<count($gunler) ifadesini kullandık. dizi boyutumuz 7 ama bizim son verimizin indisi 6. Bu yüzden döngünün dizi boyutundan küçük olduğu müddetçe devam etmesini istiyoruz.
- Dizinin her elemanını ekrana yazdırıyoruz.
Örnek: 100 elemanlı bir dizinin elemanlarını 1-1000 aralığında rastgele sayılarla doldurup dizimizi ekrana yazdıralım.
for($i=0;$i<=100;$i++) $dizi[$i] = rand(1,1000); // dizimizin elemanlarını rastgele sayılarla doldurduk for($i=0;$i<count($dizi);$i++) echo $dizi[$i]." "; // dizimizi ekrana yazdırdık.
gerekli açıklamayı kod içerisinde yaptım.
Örnek: Yukarıdaki oluşturduğumuz diziyi küçükten büyüğe doğru sıralayalım ve sıralanmış halini ekrana yazdıralım.
for($i=0;$i<=100;$i++) $dizi[$i] = rand(1,1000); // diziyi rastgele elemanlarla doldurduk for($i=0;$i<count($dizi)-1;$i++) { for($j=$i+1;$j<count($dizi);$j++) { if($dizi[$i] > $dizi[$j]) { $geciciDegisken = $dizi[$i]; $dizi[$i] = $dizi[$j]; $dizi[$j] = $geciciDegisken; } } } for($i=0;$i<count($dizi);$i++) echo $dizi[$i]." ";
Diziyi sıralama kısmını anlatacak olursak:
Diziyi sıralarken dizinin i. elemanını i+1 den diziboyutu-1 e kadar olan tüm elemanlarla karşılaştırdık ve sıralama işlemini gerçekleştirdik. Birçok sıralama algoritması var arkadaşlar. Bu algoritmaları internet üzerinden araştırıp bulabilirsiniz sizde öğrendiğiniz algoritmaları kodlayabilirsiniz.
is_array() Fonksiyonu
Bir değişkenin dizi olup olmadığını is_array() fonksiyonu ile kontrol ederiz.
<?php $arr = array(1,2,3,4,5); if(is_array($arr)) echo "Bu Bir Dizidir."; else echo "Bu Bir Dizi Değildir."; ?>
print_r() ve var_dump() Fonksiyonları
print_r() ve var_dump() fonksiyonları ile diziyi indisleri ile ekrana yazdırabiliriz. Test aşamasında işimizi çok kolaylaştırır. Örneğin:
for($i=0;$i<10;$i++) { $dizi[$i] = rand(0,100); } print_r($dizi); echo "<br/>"; var_dump($dizi);
print_r ile var_dump arasındaki temel fark var_dump ile daha detaylı olarak dizi özelliğini görebilirsiniz. Dizi eleman sayısı, dizi elemanlarının veri tipi gibi birçok özellik görebilirsiniz.
Dizinin Bir Elemanını Silmek
Diziden herhangi bir elemanı silmek için unset() fonksiyonu kullanırız. Örneğin:
$dizi = array(1,2,3,4,5); unset($dizi[2]); var_dump($dizi);
Çıktısı:
Dizimizin 2 numaralı indisi silindi. Diziyi for döngüsü ile yazdırmak istediğimizde 2. indisteyken ya hata verecek yada ek kod yazarak indis 2 iken atlacağız. Bunun önüne geçmek için dizi indislerini güncellememiz gerekir.
array_values() fonksiyonu dizi indislerini günceller.
Örneğimizi güncelleyecek olursak:
$dizi = array(1,2,3,4,5); unset($dizi[2]); $dizi = array_values($dizi); var_dump($dizi);
Çıktımız aşağıdaki şekilde olacaktır.
Bu günkü dersimizi burada sonlandırıyoruz arkadaşlar. Bu dersimizin devamı olan bir sonraki dersimizde Php Dersleri – Çok Boyutlu Diziler dersimizde görüşmek üzere.
Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.
Tüm Php Dersleri için tıklayınız..
59