Giriş
Diziler (arrays), birden fazla değeri tek bir değişken altında saklamak için kullanılan veri yapılarıdır. PHP’de diziler oldukça güçlüdür ve çeşitli veri tiplerini aynı anda barındırabilir. Bu makalede, PHP’de dizilerin nasıl tanımlandığı, kullanıldığı, dizi elemanlarına nasıl erişildiği ve dizilerle yapılabilecek işlemler detaylı olarak ele alınacaktır.
Dizi Nedir?
Dizi, birden fazla veriyi tek bir değişken içinde tutan bir veri yapısıdır. Örneğin, bir sınıftaki öğrencilerin isimlerini, bir dizide saklayabilirsiniz. Diziler, aynı tipte veya farklı tipte verileri bir arada tutabilir.
Özellikleri:
- Bir dizi birden fazla eleman içerir.
- Her elemanın bir anahtarı (index) ve değeri vardır.
- Diziler, sıralı (indexed) ve anahtar-değer (associative) olmak üzere iki ana türde olabilir.
Dizilerin Tanımlanması
PHP’de dizi oluşturmak için array()
fonksiyonu veya köşeli parantez []
kullanılır.
Yapısı:
$isimler = array("Ali", "Veli", "Ayşe");
Veya
$isimler = ["Ali", "Veli", "Ayşe"];
Bu örnekte, isimler
adında bir dizi tanımlanmış ve “Ali”, “Veli”, “Ayşe” isimleri diziye eleman olarak eklenmiştir.
Dizi Elemanlarına Erişim
Dizi elemanlarına, sıfırdan başlayan indeks numaraları ile erişilir. İlk eleman indeks numarası 0
, ikinci eleman 1
vb. olarak devam eder.
Örnek:
$isimler = ["Ali", "Veli", "Ayşe"];
echo $isimler[0]; // "Ali" çıktısını verir.
echo $isimler[2]; // "Ayşe" çıktısını verir.
Anahtar-Değer Dizileri (Associative Arrays)
Anahtar-değer dizileri, her elemanın bir anahtara (key) sahip olduğu dizilerdir. Bu dizilerde, elemanlara indeks numarası yerine anahtar adıyla erişilir.
Yapısı:
$ogrenci = array("isim" => "Ali", "yas" => 21, "sinif" => "4A");
Veya
$ogrenci = ["isim" => "Ali", "yas" => 21, "sinif" => "4A"];
Bu örnekte, ogrenci
adında bir anahtar-değer dizisi tanımlanmıştır. Bu dizi, “isim”, “yas” ve “sinif” anahtarlarına sahiptir.
Anahtar-Değer Dizisi Elemanlarına Erişim:
echo $ogrenci["isim"]; // "Ali" çıktısını verir.
echo $ogrenci["yas"]; // "21" çıktısını verir.
Dizi Fonksiyonları
PHP, dizilerle çalışmayı kolaylaştıran birçok yerleşik fonksiyon sunar. Bunlardan bazıları şunlardır:
count()
: Dizideki eleman sayısını döndürür.$sayilar = [1, 2, 3, 4, 5]; echo count($sayilar); // 5 çıktısını verir.
array_push()
: Diziye bir veya daha fazla eleman ekler.$renkler = ["Kırmızı", "Mavi"]; array_push($renkler, "Yeşil", "Sarı"); print_r($renkler); // ["Kırmızı", "Mavi", "Yeşil", "Sarı"]
array_pop()
: Diziden son elemanı çıkarır ve döndürür.$renkler = ["Kırmızı", "Mavi", "Yeşil"]; $sonEleman = array_pop($renkler); echo $sonEleman; // "Yeşil" çıktısını verir. print_r($renkler); // ["Kırmızı", "Mavi"]
array_merge()
: Birden fazla diziyi birleştirir.$dizi1 = ["Elma", "Armut"]; $dizi2 = ["Muz", "Çilek"]; $birlesmisDizi = array_merge($dizi1, $dizi2); print_r($birlesmisDizi); // ["Elma", "Armut", "Muz", "Çilek"]
array_diff()
: İki veya daha fazla dizi arasındaki farkı döndürür.$dizi1 = ["Elma", "Armut", "Muz"]; $dizi2 = ["Armut", "Muz", "Çilek"]; $fark = array_diff($dizi1, $dizi2); print_r($fark); // ["Elma"]
Çok Boyutlu Diziler
Çok boyutlu diziler, bir dizi içinde başka dizilerin bulunduğu yapılardır. En yaygın olanı iki boyutlu dizilerdir.
Örnek:
$ogrenciler = [
["isim" => "Ali", "yas" => 21],
["isim" => "Veli", "yas" => 22],
["isim" => "Ayşe", "yas" => 20]
];
echo $ogrenciler[0]["isim"]; // "Ali" çıktısını verir.
echo $ogrenciler[1]["yas"]; // "22" çıktısını verir.
Bu örnekte, ogrenciler
adında bir iki boyutlu dizi tanımlanmıştır. Her eleman bir anahtar-değer dizisidir ve öğrenci bilgilerini tutar.
Dizi Döngüleri
Diziler üzerinde döngülerle işlem yapmak yaygın bir uygulamadır. PHP’de diziler üzerinde işlem yapmak için foreach
döngüsü kullanılır.
Örnek:
$renkler = ["Kırmızı", "Mavi", "Yeşil"];
foreach ($renkler as $renk) {
echo $renk . "<br>";
}
Bu kod, renkler
dizisindeki her elemanı sırayla ekrana yazdırır.
Anahtar-değer dizileri üzerinde döngü yapmak için foreach
döngüsünü şu şekilde kullanabilirsiniz:
$ogrenci = ["isim" => "Ali", "yas" => 21, "sinif" => "4A"];
foreach ($ogrenci as $anahtar => $deger) {
echo $anahtar . ": " . $deger . "<br>";
}
Bu kod, ogrenci
dizisindeki her anahtar ve değeri ekrana yazdırır.
Ödev
Bu derste öğrendiklerinizi pekiştirmek için aşağıdaki ödevleri yapmanız gerekmektedir:
- Ülke ve Başkentler Dizisi: Ülkeler ve başkentlerini tutan bir anahtar-değer dizisi oluşturun. Bu diziyi kullanarak, döngü ile her ülke ve başkentini ekrana yazdırın.
- Öğrenci Notları: Bir sınıftaki öğrencilerin adlarını ve notlarını içeren çok boyutlu bir dizi oluşturun. Bu diziyi kullanarak her öğrencinin adını ve notunu ekrana yazdırın.
- Dizi Birleştirme: İki farklı diziyi
array_merge()
fonksiyonu kullanarak birleştirin. Birleştirilen dizinin elemanlarını ekrana yazdırın. - Dizi Farkları: İki farklı diziyi karşılaştırarak farklarını bulan bir program yazın. Örneğin, bir dizide olan fakat diğerinde olmayan elemanları ekrana yazdırın.
- Dizi Elemanı Çıkarma: Bir dizi oluşturun ve son elemanını
array_pop()
fonksiyonu ile çıkartın. Çıkarılan elemanı ve kalan diziyi ekrana yazdırın.
Bu ödevler, dizilerle çalışmayı pekiştirmenizi ve öğrendiklerinizi pratiğe dökmenizi sağlayacaktır. Diziler, veriyi organize etmenin ve yönetmenin en temel yollarından biridir ve bu dersle birlikte dizileri etkili bir şekilde kullanmayı öğreneceksiniz.