PHP Diziler (Arrays), birden fazla veriyi tek bir değişken altında tutmamıza olanak tanır. PHP’de diziler, verileri düzenli ve kolay erişilebilir bir şekilde saklamak için yaygın olarak kullanılır. Dizi kullanımı, özellikle büyük veri kümeleriyle çalışırken veya veritabanlarından gelen verilerle işlem yaparken çok faydalıdır. Şimdi, PHP dizilerini ve temel özelliklerini daha ayrıntılı bir şekilde inceleyeceğiz.
Dizi (Array), aynı türdeki veya farklı türlerdeki verileri bir arada tutabileceğiniz bir veri yapısıdır. Diziler, sıralı veya anahtar-değer (key-value) çiftleri şeklinde olabilir. PHP’de diziler, çok boyutlu olabileceği gibi, tek boyutlu da olabilir.
Dizi Türleri
PHP’de üç temel dizi türü bulunur:
- İndeksli Diziler (Indexed Arrays): Verilere sayısal bir indeksle erişilir.
- İlişkisel Diziler (Associative Arrays): Verilere anahtar (key) ile erişilir.
- Çok Boyutlu Diziler (Multidimensional Arrays): Dizilerin içinde başka diziler bulunur.
PHP Dizileri Nerelerde Kullanılır?
PHP dizileri çok çeşitli alanlarda kullanılır. İşte bazı örnekler:
- Form verileri: Kullanıcıdan alınan verileri dizi halinde tutmak.
- Veritabanı sonuçları: Veritabanı sorgularından dönen verileri dizi olarak işlemek.
- API yanıtları: JSON formatında gelen verileri dizi olarak işlemek.
- Dinamik içerik yönetimi: Web sayfalarında dinamik içerik oluşturmak için dizilerden yararlanmak.
1. İndeksli Diziler
İndeksli diziler, her bir elemanın bir sayı (index) ile erişildiği dizilerdir. PHP’de indeksler, sıfırdan başlar (ilk eleman için index 0’dır).
İndeksli Dizi Oluşturma
Bir diziyi oluşturmak için köşeli parantezler kullanılır. Örneğin:
1 2 3 4 5 6 | $meyveler = ["Elma", "Armut", "Çilek"]; // Dizinin elemanlarına erişim echo $meyveler[0]; // Elma echo "<br>"; echo $meyveler[2]; // Çilek |
Açıklama:
$meyveler[0]
: Dizinin ilk elemanını temsil eder (index 0, “Elma”).$meyveler[1]
: Dizinin ikinci elemanını temsil eder (index 1, “Armut”).$meyveler[2]
: Dizinin üçüncü elemanını temsil eder (index 2, “Çilek”).
İndeksli Dizilerde Eleman Ekleme
PHP’de dizilere yeni eleman eklemek çok kolaydır. Eleman eklemek için dizi adını ve bir indeks değeri belirleyerek ekleme yapabilirsiniz. Ancak, dizilerdeki indeksler sırasız olabilir.
1 2 | $meyveler[] = "Kivi"; // Yeni eleman ekleme echo $meyveler[3]; // Kivi |
2. İlişkisel Diziler
İlişkisel diziler, her elemanı bir anahtar (key) ve bir değer (value) ile eşleştirir. Bu, dizi elemanlarına anahtarları kullanarak erişmenizi sağlar.
İlişkisel Dizi Oluşturma
1 2 3 4 5 6 7 8 9 10 | $kisiler = [ "Ahmet" => 25, "Mehmet" => 30, "Ayşe" => 28 ]; // Anahtarlar üzerinden değerler echo "Ahmet'in yaşı: " . $kisiler["Ahmet"]; echo "<br>"; echo "Ayşe'nin yaşı: " . $kisiler["Ayşe"]; |
Açıklama:
"Ahmet" => 25
: “Ahmet” anahtarına karşılık gelen değer 25’dir.$kisiler["Ahmet"]
: “Ahmet” anahtarını kullanarak, Ahmet’in yaşını alır (25).
İlişkisel Dizilerde Eleman Ekleme
Yeni anahtar-değer çifti eklemek için dizinin anahtarına ve değerine atama yapılabilir.
1 2 | $kisiler["Ali"] = 35; // Yeni anahtar-değer ekleme echo $kisiler["Ali"]; // 35 |
3. Çok Boyutlu Diziler
Çok boyutlu diziler, dizilerin içinde başka diziler bulunmasına olanak tanır. Bu, özellikle tablolar veya matris yapıları oluştururken kullanışlıdır.
Çok Boyutlu Dizi Oluşturma
Örnek olarak bir öğrencinin sınav notlarını tutan çok boyutlu bir dizi oluşturalım:
1 2 3 4 5 6 7 8 | $ogrenciler = [ ["Ali", 85, 90], // Ali'nin notları ["Veli", 78, 82], // Veli'nin notları ["Ayşe", 92, 88] // Ayşe'nin notları ]; echo $ogrenciler[0][1]; // Ali'nin Matematik notu: 85 echo $ogrenciler[2][2]; // Ayşe'nin Fen notu: 88 |
Kod çıktısı:
1 2 | Ali'nin Matematik notu: 85 Ayşe'nin Fen notu: 88 |
Açıklama:
$ogrenciler[0]
dizisi, Ali’nin bilgilerini içerir.$ogrenciler[0][1]
: Ali’nin Matematik notu (85).$ogrenciler[2][2]
: Ayşe’nin Fen notu (88).
PHP Dizi Fonksiyonları
PHP dizileriyle ilgili bu fonksiyonlar, diziler üzerinde çeşitli işlemleri çok daha kolay ve hızlı yapmanıza olanak tanır. Bu fonksiyonları kullanarak dizilerle daha verimli çalışabilirsiniz.
count()
: Bir dizideki eleman sayısını öğrenmek için kullanılır.
1 2 | $meyveler = ["Elma", "Armut", "Çilek"]; echo count($meyveler); // 3 |
Kod Çıktısı:
1 | 3 |
in_array()
: Bir dizide belirli bir değerin olup olmadığını kontrol eder.
1 2 3 4 5 6 | $meyveler = ["Elma", "Armut", "Çilek"]; if (in_array("Armut", $meyveler)) { echo "Armut dizide var!"; } else { echo "Armut dizide yok!"; } |
Kod çıktısı:
1 | Armut dizide var! |
array_merge()
: İki diziyi birleştirmek için fonksiyonu kullanılır.
1 2 3 4 | $dizi1 = ["Elma", "Armut"]; $dizi2 = ["Çilek", "Kivi"]; $birlesikDizi = array_merge($dizi1, $dizi2); print_r($birlesikDizi); // ["Elma", "Armut", "Çilek", "Kivi"] |
Kod çıktısı:
1 2 3 4 5 6 7 | Array ( [0] => Elma [1] => Armut [2] => Çilek [3] => Kivi ) |
array_pop()
: Dizinin son elemanını çıkarmak için kullanılır.
1 2 3 4 | $meyveler = ["Elma", "Armut", "Çilek"]; $sonMeyve = array_pop($meyveler); // Çilek'i çıkarır echo $sonMeyve; // Çilek print_r($meyveler); |
Kod çıktısı:
1 2 3 4 5 | Array ( [0] => Elma [1] => Armut ) |
array_push()
: Dizinin sonuna bir veya daha fazla eleman ekler.
1 2 3 | $meyveler = ["Elma", "Armut"]; array_push($meyveler, "Çilek", "Kivi"); // Çilek ve Kivi'yi ekler print_r($meyveler); |
Kod çıktısı:
1 2 3 4 5 6 7 | Array ( [0] => Elma [1] => Armut [2] => Çilek [3] => Kivi ) |
array_shift()
: Dizinin ilk elemanını çıkarır.
1 2 3 4 | $meyveler = ["Elma", "Armut", "Çilek"]; $ilkMeyve = array_shift($meyveler); // Elma'yı çıkarır echo $ilkMeyve; // Elma print_r($meyveler); |
Kod çıktısı:
1 2 3 4 5 | Array ( [0] => Armut [1] => Çilek ) |
array_unshift()
: Dizinin başına bir veya daha fazla eleman ekler.
1 2 3 | $meyveler = ["Armut", "Çilek"]; array_unshift($meyveler, "Elma", "Kivi"); // Elma ve Kivi'yi başa ekler print_r($meyveler); |
Kod çıktısı:
1 2 3 4 5 6 7 | Array ( [0] => Elma [1] => Kivi [2] => Armut [3] => Çilek ) |
array_slice()
: Bir diziden belirli bir kısmı alır ve yeni bir dizi oluşturur.
1 2 3 | $meyveler = ["Elma", "Armut", "Çilek", "Kivi"]; $kisim = array_slice($meyveler, 1, 2); // 1. index'ten başlayarak 2 eleman alır print_r($kisim); |
Kod çıktısı:
1 2 3 4 5 | Array ( [0] => Armut [1] => Çilek ) |
array_splice()
: Bir dizinin belirli bir kısmını keser ve yeni elemanlar ekler.
1 2 3 | $meyveler = ["Elma", "Armut", "Çilek", "Kivi"]; array_splice($meyveler, 1, 2, ["Muz", "Portakal"]); // 1. index'ten başlayarak 2 elemanı çıkarır ve yerine 2 yeni eleman ekler print_r($meyveler); |
Kod çıktısı:
1 2 3 4 5 6 7 | Array ( [0] => Elma [1] => Muz [2] => Portakal [3] => Kivi ) |
array_flip()
: Dizinin anahtarlarını ve değerlerini yer değiştirir.
1 2 3 | $kisiler = ["Ahmet" => 25, "Mehmet" => 30, "Ayşe" => 28]; $tersDizi = array_flip($kisiler); // Anahtarları ve değerleri tersine çevirir print_r($tersDizi); |
Kod çıktısı:
1 2 3 4 5 6 | Array ( [25] => Ahmet [30] => Mehmet [28] => Ayşe ) |
array_values()
: Bir dizinin sadece değerlerini döndürür.
1 2 3 | $kisiler = ["Ahmet" => 25, "Mehmet" => 30, "Ayşe" => 28]; $degerler = array_values($kisiler); print_r($degerler); |
Kod çıktısı:
1 2 3 4 5 6 | Array ( [0] => 25 [1] => 30 [2] => 28 ) |
array_unique()
: Bir dizinin tekrar eden elemanlarını temizler ve sadece benzersiz değerleri döndürür.
1 2 3 | $meyveler = ["Elma", "Armut", "Çilek", "Elma"]; $benzersiz = array_unique($meyveler); print_r($benzersiz); |
Kod çıktısı:
1 2 3 4 5 6 | Array ( [0] => Elma [1] => Armut [2] => Çilek ) |
array_sum()
: Bir dizideki tüm sayısal değerlerin toplamını döndürür.
1 2 3 | $sayilar = [1, 2, 3, 4, 5]; $toplam = array_sum($sayilar); echo $toplam; // 15 |
Kod çıktısı:
1 | 15 |
array_product()
: Bir dizideki tüm sayısal değerlerin çarpımını döndürür.
1 2 3 | $sayilar = [1, 2, 3, 4]; $carpim = array_product($sayilar); echo $carpim; // 24 |
Kod çıktısı:
1 | 24 |
array_rand()
: Bir diziden rastgele bir anahtar döndürür.
1 2 3 | $meyveler = ["Elma", "Armut", "Çilek"]; $randomKey = array_rand($meyveler); echo $meyveler[$randomKey]; // Rastgele bir meyve ismi döndürür |
Kod çıktısı:
1 | Çilek |
array_reverse()
: Bir diziyi tersine çevirir.
1 2 3 | $meyveler = ["Elma", "Armut", "Çilek"]; $tersDizi = array_reverse($meyveler); print_r($tersDizi); |
Kod çıktısı:
1 2 3 4 5 6 | Array ( [0] => Çilek [1] => Armut [2] => Elma ) |