DEV Community

Barış AKSU
Barış AKSU

Posted on

PHP Dizi Fonksiyonları

1. Giriş

Diziler, programlamada çok sık kullanılan ve birden fazla değeri aynı değişken altında saklamamıza olanak tanıyan önemli bir veri yapısıdır. PHP'de diziler, farklı veri türlerini içerebilen ve dinamik olarak genişletilebilen yapılar olarak kullanılabilir. Diziler, veri koleksiyonlarını işlemek, depolamak ve düzenlemek için temel araçlardan biridir.

Dizilerin Tanımı ve Kullanım Alanları

Bir dizi, aynı türde veya farklı türde verileri içinde barındırabilen bir veri koleksiyonudur. Bu veriler, indisler veya anahtarlar aracılığıyla erişilebilir. Dizilerin kullanım alanları oldukça geniştir ve örnek olarak şunları içerebilir:

  • Veritabanı Sonuçları: Veritabanından alınan verileri saklamak ve işlemek için diziler kullanılır.
  • Form Verileri: Web formlarından gelen verileri toplamak ve düzenlemek için diziler yaygın şekilde kullanılır.
  • Çok Boyutlu Veriler: Matrisler veya ilişkisel veriler gibi çok boyutlu yapıları temsil etmek için diziler kullanılabilir.
  • Listeler ve Sıralamalar: Öğrenci listeleri, ürün katalogları gibi sıralı verileri yönetmek için diziler idealdir.

Dizi Fonksiyonlarının Önemi

PHP, dizilerle çalışmayı kolaylaştıran bir dizi (pun intended) dizi fonksiyonu sağlar. Bu fonksiyonlar, dizileri oluşturmayı, düzenlemeyi, sıralamayı ve filtrelemeyi daha basit ve etkili hale getirir. Dizi fonksiyonları, kod tekrarını azaltır, hataları önler ve işlem süreçlerini optimize eder.

Bu makalede, PHP'nin temel dizi fonksiyonlarını inceleyeceğiz. Dizi oluşturma yöntemleri, elemanlara erişim, ekleme ve silme işlemleri, döngülerle dizi işleme, sıralama fonksiyonları ve daha fazlası konularını ele alacağız. Her bir fonksiyonun kullanımını açıklamak ve örneklerle desteklemek, dizileri etkili bir şekilde yönetmenize yardımcı olacaktır.


2. Dizi Oluşturma ve Tanımlama

Diziler, PHP'de farklı veri türlerini gruplamak ve işlemek için kullanılan temel veri yapılarıdır. Dizileri oluşturmanın çeşitli yöntemleri bulunur ve bu bölümde bu yöntemlere göz atacağız.

Dizi Oluşturma Yöntemleri

Indeksli Diziler

PHP'de en yaygın dizi türü, indislerle erişilen indeksli dizilerdir. Bu diziler, sayısal indislerle sıralanan elemanlardan oluşur.

$renkler = array("Kırmızı", "Mavi", "Yeşil");
Enter fullscreen mode Exit fullscreen mode

veya kısa sözdizimiyle:

$renkler = ["Kırmızı", "Mavi", "Yeşil"];
Enter fullscreen mode Exit fullscreen mode

array() fonksiyonu ile oluşturulan diziler PHP 5.4 sürümünden itibaren [] ile de oluşturulabilir.

İlişkisel Diziler

İlişkisel dizilerde, her bir eleman bir anahtar-değer çifti olarak saklanır. Anahtarlar, elemanlara benzersiz bir şekilde erişmek için kullanılır.

$ogrenci = array("ad" => "Ahmet", "yas" => 20, "bolum" => "Bilgisayar Mühendisliği");
Enter fullscreen mode Exit fullscreen mode

array() Fonksiyonu

Dizileri oluşturmak için array() fonksiyonunu kullanabilirsiniz. Bu fonksiyon hem indeksli hem de ilişkisel dizileri oluşturmanıza olanak tanır.

$notlar = array(85, 90, 78, 95);
$personel = array("ad" => "Ayşe", "görev" => "Yazılım Geliştirici");
Enter fullscreen mode Exit fullscreen mode

Dizi Elemanlarına Erişim

Dizilerdeki elemanlara erişmek için indisleri veya anahtarları kullanabilirsiniz.

echo $renkler[0]; // "Kırmızı"
echo $ogrenci["yas"]; // 20
Enter fullscreen mode Exit fullscreen mode

Dizi Elemanlarına Değiştirme

Dizi elemanlarını değiştirmek için indis veya anahtarları kullanarak erişebilir ve değerleri güncelleyebilirsiniz.

$renkler[1] = "Sarı";
$ogrenci["bolum"] = "Elektrik Mühendisliği";
Enter fullscreen mode Exit fullscreen mode

Dizileri oluşturma ve elemanlara erişim ve değiştirme, PHP'de dizilerle çalışmanın temel adımlarıdır. Bu adımları öğrenerek, farklı veri türlerini etkili bir şekilde saklayabilir ve işleyebilirsiniz.

Özel Durum: Dizi Elemanlarına Yeni Ekleme

Dizilere, mevcut indis veya anahtarların dışında yeni elemanlar ekleyebilirsiniz.

$ogrenci["cinsiyet"] = "Erkek"; // Yeni bir eleman ekler
$notlar[] = 92; // Dizinin sonuna yeni bir not ekler
Enter fullscreen mode Exit fullscreen mode

Bu işlem, diziye yeni bir anahtar veya indis atayarak veya sonuna eleman ekleyerek gerçekleştirilir.


3. Dizi Ekleme ve Silme İşlemleri

Dizileri yönetirken, eleman eklemek ve silmek sıkça kullanılan işlemlerdir. Bu bölümde, dizilere eleman eklemenin ve silmenin farklı yöntemlerini inceleyeceğiz.

Eleman Ekleme Yöntemleri

array_push() ve array_unshift()

Dizilere eleman eklemek için array_push() ve array_unshift() fonksiyonları kullanılır.

$sehirler = array("Ankara", "İstanbul");
array_push($sehirler, "İzmir"); // Dizinin sonuna eleman ekler: ["Ankara", "İstanbul", "İzmir"]

array_unshift($sehirler, "Bursa"); // Dizinin başına eleman ekler: ["Bursa", "Ankara", "İstanbul", "İzmir"]
Enter fullscreen mode Exit fullscreen mode

Belirli Bir İndise Ekleme

Belirli bir indise eleman eklemek için array_splice() fonksiyonunu kullanabilirsiniz.

$harfler = array("a", "b", "d");
array_splice($harfler, 2, 0, "c"); // İkinci indise eleman ekler: ["a", "b", "c", "d"]
Enter fullscreen mode Exit fullscreen mode

Eleman Silme Yöntemleri

unset()

Elemanları belirli bir indis veya anahtar kullanarak silmek için unset() fonksiyonunu kullanabilirsiniz.

$notlar = array(85, 90, 78, 95);
unset($notlar[1]); // İkinci elemanı siler: [85, 78, 95]
Enter fullscreen mode Exit fullscreen mode

array_pop() ve array_shift()

array_pop() dizinin sonundaki elemanı, array_shift() ise dizinin başındaki elemanı siler.

$sehirler = array("Ankara", "İstanbul", "İzmir");
array_pop($sehirler); // Son elemanı siler: ["Ankara", "İstanbul"]
array_shift($sehirler); // İlk elemanı siler: ["İstanbul"]
Enter fullscreen mode Exit fullscreen mode

Belirli Bir İndisten Sonrasını Silme

Belirli bir indisten sonrasını silmek için array_splice() fonksiyonunu kullanabilirsiniz.

$harfler = array("a", "b", "c", "d");
array_splice($harfler, 2); // İkinci indisten sonrasını siler: ["a", "b"]
Enter fullscreen mode Exit fullscreen mode

Dizilere eleman eklemek ve silmek, veri yönetiminde önemli adımlardır. Bu işlemleri öğrenerek, verilerinizi dinamik bir şekilde düzenleyebilir ve güncelleyebilirsiniz.


4. Dizi Döngüleri

Dizilerdeki elemanları işlemek ve üzerlerinde işlemler yapmak için döngüler kullanmak sıkça tercih edilen bir yöntemdir. Bu bölümde, dizileri döngülerle nasıl işleyebileceğimizi ve çeşitli örneklerle nasıl kullanabileceğimizi inceleyeceğiz.

foreach Döngüsü

foreach döngüsü, dizileri döngü içinde eleman eleman gezmek için kullanılır. Bu döngü, dizinin her elemanını dolaşarak işlem yapmanıza olanak sağlar.

$sehirler = array("Ankara", "İstanbul", "İzmir");

foreach ($sehirler as $sehir) {
    echo $sehir . "<br>";
}
Enter fullscreen mode Exit fullscreen mode

Örnek: Toplamı Hesaplama

$notlar = array(85, 90, 78, 95);
$toplam = 0;

foreach ($notlar as $not) {
    $toplam += $not;
}

echo "Notların Toplamı: " . $toplam;
Enter fullscreen mode Exit fullscreen mode

array_sum() fonksiyonunu araştırınız.

for Döngüsü ile Dizi İşlemleri

for döngüsünü kullanarak dizilerdeki elemanları indisleri üzerinden gezebilirsiniz.

$notlar = array(85, 90, 78, 95);

for ($i = 0; $i < count($notlar); $i++) {
    echo "Not: " . $notlar[$i] . "<br>";
}
Enter fullscreen mode Exit fullscreen mode

Örnek: En Büyük Değeri Bulma

$notlar = array(85, 90, 78, 95);
$enBuyuk = $notlar[0];

for ($i = 1; $i < count($notlar); $i++) {
    if ($notlar[$i] > $enBuyuk) {
        $enBuyuk = $notlar[$i];
    }
}

echo "En Büyük Not: " . $enBuyuk;
Enter fullscreen mode Exit fullscreen mode

min() ve max() fonksiyonlarını araştırınız.

while Döngüsü ile Dizi İşlemleri

while döngüsü ile de dizilerdeki elemanları işleyebilirsiniz. Bu döngüyü, dizinin sonuna gelene kadar çalıştırabilirsiniz.

$renkler = array("Kırmızı", "Mavi", "Yeşil");
$indeks = 0;

while ($indeks < count($renkler)) {
    echo $renkler[$indeks] . "<br>";
    $indeks++;
}
Enter fullscreen mode Exit fullscreen mode

Örnek: Belirli Bir Renk Bulma

$colors = array("Kırmızı", "Mavi", "Yeşil");
$targetColor = "Mavi";
$index = 0;
$founded = false;

while ($index < count($colors)) {
    if ($colors[$index] === $targetColor) {
        $founded = true;
        break;
    }
    $index++;
}

if ($founded) {
    echo "Aradığınız renk bulundu => " . $targetColor . "\n";
} else {
    echo "Aradığınız renk bulunamadı.";
}

Enter fullscreen mode Exit fullscreen mode

array_search() fonksiyonunu araştırınız.

Dizi döngüleri, dizileri verimli bir şekilde dolaşmak, işlem yapmak ve farklı senaryolarda kullanmak için önemli bir araçtır. Bu örnekler, döngülerin farklı kullanım senaryolarını göstermektedir. Bir sonraki bölümde dizi sıralama ve sıralama fonksiyonlarını inceleyeceğiz.


5. Dizi Sıralama ve Sıralama Fonksiyonları

Dizileri sıralamak, veri analizi ve işlemlerinde önemli bir adımdır. Bu bölümde, PHP'nin sıralama fonksiyonlarını ve dizileri nasıl sıralayabileceğimizi daha detaylı bir şekilde inceleyeceğiz.

Temel Sıralama Fonksiyonları

sort() ve rsort()

sort() fonksiyonu, diziyi artan sıraya göre sıralarken, rsort() fonksiyonu azalan sıraya göre sıralar.

$notlar = array(85, 90, 78, 95);
sort($notlar); // Artan sırayla sıralar: [78, 85, 90, 95]
rsort($notlar); // Azalan sırayla sıralar: [95, 90, 85, 78]
Enter fullscreen mode Exit fullscreen mode

asort() ve arsort()

asort() fonksiyonu, ilişkisel diziyi değerlere göre artan sıraya göre sıralar. arsort() fonksiyonu ise azalan sıraya göre sıralar.

$ogrenciler = array("Ahmet" => 85, "Mehmet" => 90, "Ayşe" => 78, "Zeynep" => 95);
asort($ogrenciler); // Değere göre artan sırayla sıralar
arsort($ogrenciler); // Değere göre azalan sırayla sıralar
Enter fullscreen mode Exit fullscreen mode

Şunu unutmamalısınız: sort() veya rsort() ile sıralama yaparken key değeri değişirken asort() ve arsort() ile yapılan sıralamalarda key değeri değişmez.

$notlar = array(85, 90, 78, 95);

sort($notlar); // key değişir

Çıktı:
Array
(
    [0] => 78
    [1] => 85
    [2] => 90
    [3] => 95
)

asort($notlar); // key değişmez

Çıktı:
Array
(
    [2] => 78
    [0] => 85
    [1] => 90
    [3] => 95
)

Enter fullscreen mode Exit fullscreen mode

Özelleştirilebilir Sıralama Fonksiyonları

usort()

usort() fonksiyonu, diziyi kullanıcı tarafından tanımlanan bir işlevle sıralar.

function kendiSirala($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$sayilar = array(3, 1, 4, 1, 5, 9, 2, 6);
usort($sayilar, "kendiSirala"); // Tanımlanan işleve göre sıralar
Enter fullscreen mode Exit fullscreen mode

Örnek: İsimlere Göre Alfabetik Sıralama

$isimler = array("Zeynep", "Mehmet", "Ayşe", "Ahmet", "İsmail");
usort($isimler, function($a, $b) {
    return strcmp($a, $b);
});
Enter fullscreen mode Exit fullscreen mode

Çok Boyutlu Dizilerin Sıralanması

Çok boyutlu dizilerde sıralama yaparken, özelleştirilebilir sıralama işlevlerini kullanarak istediğiniz şekilde sıralama yapabilirsiniz.

$ogrenciler = array(
    array("ad" => "Ahmet", "not" => 85),
    array("ad" => "Mehmet", "not" => 90),
    array("ad" => "Ayşe", "not" => 78)
);

usort($ogrenciler, function($a, $b) {
    return $b["not"] - $a["not"];
});
Enter fullscreen mode Exit fullscreen mode

Örnek: İsim ve Notlarına Göre Sıralama

$ogrenciler = array(
    array("ad" => "Ahmet", "not" => 85),
    array("ad" => "Mehmet", "not" => 90),
    array("ad" => "Ayşe", "not" => 78),
    array("ad" => "Fatma", "not" => 95),
    array("ad" => "Ahmet", "not" => 86),
);

usort($ogrenciler, function ($a, $b) {
    $isimSonuc = strcmp($a["ad"], $b["ad"]);
    if ($isimSonuc == 0) {
        echo "İsimler aynı, notlara göre sıralanıyor...\n";
        return $b["not"] - $a["not"];
    }
    return $isimSonuc;
});

print_r($ogrenciler);
Enter fullscreen mode Exit fullscreen mode

Dizileri sıralamak, verileri düzenlemek ve analiz etmek için önemli bir beceridir. Bu bölümde temel ve özelleştirilebilir sıralama fonksiyonlarını daha fazla örneklerle inceledik. Bir sonraki bölümde dizi fonksiyonlarıyla ilgili daha ileri konuları inceleyeceğiz.


6. Dizi Fonksiyonlarıyla İlgili İleri Konular

Dizi fonksiyonları, PHP'nin güçlü araçlarından biridir ve birçok karmaşık işlemi basit bir şekilde gerçekleştirmemizi sağlar. Bu bölümde, dizi fonksiyonlarıyla ilgili daha ileri konuları ve örneklerini daha ayrıntılı bir şekilde inceleyeceğiz.

array_map() Fonksiyonu

array_map() fonksiyonu, bir veya birden fazla dizi üzerinde belirtilen işlemi gerçekleştirerek yeni bir dizi oluşturur.

Örnek: İki Dizi Elemanlarını Toplama

$dizi1 = array(1, 2, 3);
$dizi2 = array(10, 20, 30);

$sonuclar = array_map(function ($x, $y) {
    return $x + $y;
}, $dizi1, $dizi2); // [11, 22, 33]
Enter fullscreen mode Exit fullscreen mode

array_filter() Fonksiyonu

array_filter() fonksiyonu, belirli bir dizi üzerinde belirtilen bir işlemi uygulayarak sadece belirli koşulu sağlayan elemanları içeren yeni bir dizi oluşturur.

Örnek: Pozitif Sayıları Filtreleme

$sayilar = array(1, -2, 3, -4, 5, -6);

$pozitifler = array_filter($sayilar, function ($x) {
    return $x > 0;
}); // [1, 3, 5]
Enter fullscreen mode Exit fullscreen mode

array_reduce() Fonksiyonu

array_reduce() fonksiyonu, bir diziyi belirtilen işlemi uygulayarak tek bir değere dönüştürür.

Örnek: Dizi Elemanlarının Toplamını Bulma

$sayilar = array(1, 2, 3, 4, 5);
$toplam = array_reduce($sayilar, function($carry, $item) {
    return $carry + $item;
}); // 15
Enter fullscreen mode Exit fullscreen mode

array_walk() Fonksiyonu

array_walk() fonksiyonu, bir dizinin her bir elemanına belirtilen işlemi uygular.

Örnek: Diziyi Büyük Harfe Çevirme

$renkler = array("Kırmızı", "Mavi", "Yeşil");
array_walk($renkler, function(&$value, $key) {
    $value = strtoupper($value);
});
Enter fullscreen mode Exit fullscreen mode

array_column() Fonksiyonu

array_column() fonksiyonu, çok boyutlu bir diziden belirli bir sütunu alarak yeni bir dizi oluşturur.

Örnek: Çok Boyutlu Diziden İsimleri Alma

$ogrenciler = array(
    array("ad" => "Ahmet", "not" => 85),
    array("ad" => "Mehmet", "not" => 90),
    array("ad" => "Ayşe", "not" => 78)
);

$isimler = array_column($ogrenciler, "ad"); // ["Ahmet", "Mehmet", "Ayşe"]
Enter fullscreen mode Exit fullscreen mode

array_diff() Fonksiyonu

array_diff() fonksiyonu, iki veya daha fazla diziyi karşılaştırarak bir dizide bulunan ancak diğer dizilerde bulunmayan elemanları bulmanızı sağlar.

Örnek: Farklı Elemanları Bulma

$dizi1 = array(1, 2, 3, 4, 5);
$dizi2 = array(3, 4, 5, 6, 7);

$farkliElemanlar = array_diff($dizi1, $dizi2); // [1, 2]
Enter fullscreen mode Exit fullscreen mode

array_intersect() Fonksiyonu

array_intersect() fonksiyonu, iki veya daha fazla diziyi karşılaştırarak ortak elemanları bulmanızı sağlar.

Örnek: Ortak Elemanları Bulma

$dizi1 = array(1, 2, 3, 4, 5);
$dizi2 = array(3, 4, 5, 6, 7);

$ortakElemanlar = array_intersect($dizi1, $dizi2); // [3, 4, 5]
Enter fullscreen mode Exit fullscreen mode

array_merge() Fonksiyonu

array_merge() fonksiyonu, iki veya daha fazla diziyi birleştirerek yeni bir dizi oluşturmanızı sağlar.

Örnek: Dizileri Birleştirme

$dizi1 = array("kırmızı", "yeşil");
$dizi2 = array("mavi", "sarı");

$birlesikDizi = array_merge($dizi1, $dizi2); // ["kırmızı", "yeşil", "mavi", "sarı"]
Enter fullscreen mode Exit fullscreen mode

array_search() Fonksiyonu

array_search() fonksiyonu, bir dizide belirli bir değeri aramanızı sağlar.

Örnek: Değerin İndeksini Bulma

$dizi = array(10, 20, 30, 40, 50);

$arananIndeks = array_search(30, $dizi); // 2
Enter fullscreen mode Exit fullscreen mode

array_slice() Fonksiyonu

array_slice() fonksiyonu, bir dizinin belirli bir bölümünü keserek almanızı sağlar.

Örnek: Dizi Bölümünü Alma

$dizi = array(10, 20, 30, 40, 50);

$bolum = array_slice($dizi, 2, 2); // [30, 40]
Enter fullscreen mode Exit fullscreen mode

array_unique() Fonksiyonu

array_unique() fonksiyonu, bir dizideki tekrarlanan elemanları silmenizi sağlar.

Örnek: Tekrarlananları Silme

$dizi = array(10, 20, 30, 20, 40, 30, 50);

$tekrarlananlarSilinmis = array_unique($dizi); // [10, 20, 30, 40, 50]
Enter fullscreen mode Exit fullscreen mode

array_rand() Fonksiyonu

array_rand() fonksiyonu, bir diziden rastgele bir veya daha fazla eleman seçmenizi sağlar.

Örnek: Rastgele Eleman Seçme

$dizi = array("kırmızı", "mavi", "yeşil", "sarı", "mor");

$rastgeleIndeks = array_rand($dizi); // Rastgele bir indeks seçer
$rastgeleEleman = $dizi[$rastgeleIndeks]; // Seçilen rastgele eleman
Enter fullscreen mode Exit fullscreen mode

array_combine() Fonksiyonu

array_combine() fonksiyonu, iki diziyi anahtar-değer çiftleri olarak birleştirir.

Örnek: Dizileri Anahtar-Değer Çiftleri Olarak Birleştirme

$anahtarlar = array("ad", "soyad", "yas");
$degerler = array("Ahmet", "Yılmaz", 30);

$birlesikDizi = array_combine($anahtarlar, $degerler); // ["ad" => "Ahmet", "soyad" => "Yılmaz", "yas" => 30]
Enter fullscreen mode Exit fullscreen mode

Bu bölümde daha ileri düzeydeki dizi fonksiyonlarını daha detaylı örneklerle inceledik. Makalenin bu noktasında, PHP dizileri ve ilgili fonksiyonları hakkında geniş bir anlayışa sahip olmalısınız.


7. Çok Boyutlu Diziler

Çok boyutlu diziler, iç içe geçmiş dizi yapılarıdır ve genellikle karmaşık veri yapılarını temsil etmek için kullanılırlar. Bu bölümde, çok boyutlu dizileri nasıl oluşturabileceğimizi, işleyebileceğimizi ve yönetebileceğimizi inceleyeceğiz.

Çok Boyutlu Dizi Oluşturma

Çok boyutlu dizileri oluştururken iç içe geçmiş dizi yapısını kullanabiliriz.

$matris = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);
Enter fullscreen mode Exit fullscreen mode

Çok Boyutlu Diziye Erişim

Çok boyutlu dizilere erişirken indisleri sırayla kullanarak elemanlara ulaşabiliriz.

echo $matris[0][0]; // 1
echo $matris[1][2]; // 6
echo $matris[2][1]; // 8
Enter fullscreen mode Exit fullscreen mode

Çok Boyutlu Dizi Döngüleri

Çok boyutlu dizileri döngülerle işlemek için iç içe döngüler kullanabiliriz.

for ($i = 0; $i < count($matris); $i++) {
    for ($j = 0; $j < count($matris[$i]); $j++) {
        echo $matris[$i][$j] . " ";
    }
    echo "<br>";
}
Enter fullscreen mode Exit fullscreen mode

Fonksiyonlarla Çok Boyutlu Diziler

Fonksiyonlar kullanarak çok boyutlu dizileri yönetebiliriz.

function toplamHesapla($matris) {
    $toplam = 0;
    for ($i = 0; $i < count($matris); $i++) {
        for ($j = 0; $j < count($matris[$i]); $j++) {
            $toplam += $matris[$i][$j];
        }
    }
    return $toplam;
}

$sonuc = toplamHesapla($matris); // 45
Enter fullscreen mode Exit fullscreen mode

Çok boyutlu diziler, karmaşık veri yapılarını temsil etmek ve işlemek için güçlü bir araçtır. Bu bölümde, çok boyutlu dizileri oluşturma, erişim, döngüler ve fonksiyonlarla işleme konularını öğrendik.


8. Dizi Hata Ayıklama ve İpuçları

Dizi işlemleri sırasında hatalarla karşılaşabiliriz. Bu bölümde, dizi hata ayıklama süreçlerini ve bazı önemli ipuçlarını örneklerle inceleyeceğiz.

Dizi Hataları ve Ayıklama

Dizi işlemleri sırasında sıkça karşılaşılan hatalar arasında dizinin oluşturulamaması, indeksin bulunmaması gibi durumlar yer alabilir. Bu tür hataları ayıklamak için hata raporlamayı etkinleştirebiliriz.

error_reporting(E_ALL);
ini_set('display_errors', 1);

$dizi = array(1, 2, 3);
echo $dizi[5]; // Hata: Tanımsız indeks
Enter fullscreen mode Exit fullscreen mode

isset() ve empty() Fonksiyonları

isset() fonksiyonu, bir değerin tanımlı olup olmadığını kontrol ederken, empty() fonksiyonu ise bir değerin boş olup olmadığını kontrol eder.

$dizi = array("ad" => "Ahmet", "not" => 85);

if (isset($dizi["ad"])) {
    echo "Ad değeri tanımlı.";
}

if (!empty($dizi["not"])) {
    echo "Not değeri boş değil.";
}
Enter fullscreen mode Exit fullscreen mode

Hata Ayıklama Araçları

PHP'nin hata ayıklama araçları olan var_dump() ve print_r(), dizileri ve içeriklerini görüntülemek için kullanışlıdır.

$dizi = array(1, 2, 3);
var_dump($dizi); // Dizi yapısını ve içeriğini görüntüler

$ogrenciler = array(
    array("ad" => "Ahmet", "not" => 85),
    array("ad" => "Mehmet", "not" => 90)
);

print_r($ogrenciler); // Dizi yapısını ve içeriğini daha okunabilir şekilde görüntüler
Enter fullscreen mode Exit fullscreen mode

Dizi işlemleri sırasında karşılaşılan hataları ayıklamak ve önlemek için bu bölümdeki ipuçları ve fonksiyonlar oldukça faydalıdır. Hata ayıklama araçlarını kullanarak kodunuzu daha güvenli ve hatasız hale getirebilirsiniz.


9. Örnek Uygulamalar

Bu bölümde, dizi fonksiyonlarını farklı senaryolarda nasıl kullanabileceğimize dair daha fazla örnek uygulamalara göz atacağız. Bu uygulamalar, dizi fonksiyonlarını gerçek dünya senaryolarında nasıl kullanabileceğinizi anlamanıza yardımcı olacaktır.

Örnek 1: En Yüksek ve En Düşük Notu Bulma

Verilen bir notlar dizisinde en yüksek ve en düşük notları bulmak için max() ve min() fonksiyonları kullanılabilir.

$notlar = array(85, 90, 78, 95, 88);
$enYuksekNot = max($notlar); // 95
$enDusukNot = min($notlar); // 78
Enter fullscreen mode Exit fullscreen mode

Örnek 2: Not Ortalaması Hesaplama

Bir notlar dizisindeki notların ortalamasını hesaplamak için array_sum() ve count() fonksiyonları kullanılabilir.

$notlar = array(85, 90, 78, 95, 88);
$toplamNot = array_sum($notlar); // 436
$ogrenciSayisi = count($notlar); // 5

$ortalama = $toplamNot / $ogrenciSayisi; // 87.2
Enter fullscreen mode Exit fullscreen mode

Örnek 3: İsimleri Birleştirme

Verilen bir isimler dizisindeki isimleri virgülle ayrılmış bir metin olarak birleştirmek için implode() fonksiyonu kullanılabilir.

$isimler = array("Ahmet", "Mehmet", "Ayşe", "Zeynep");
$birlesikIsimler = implode(", ", $isimler); // "Ahmet, Mehmet, Ayşe, Zeynep"
Enter fullscreen mode Exit fullscreen mode

Örnek 4: Harf Frekansını Hesaplama

Verilen bir metindeki harf frekansını hesaplamak için str_split() fonksiyonu ve bir ilişkisel dizi kullanılabilir.

$metin = "Merhaba dünya!";
$harfler = str_split($metin);
$harfFrekans = array();

foreach ($harfler as $harf) {
    if (ctype_alpha($harf)) {
        $harf = strtolower($harf);
        if (!isset($harfFrekans[$harf])) {
            $harfFrekans[$harf] = 1;
        } else {
            $harfFrekans[$harf]++;
        }
    }
}

print_r($harfFrekans); // Harf frekansını gösterir
Enter fullscreen mode Exit fullscreen mode

Örnek 5: Rastgele Sıralama

Verilen bir dizi elemanlarını rastgele sıralamak için shuffle() fonksiyonu kullanılabilir.

$renkler = array("Kırmızı", "Mavi", "Yeşil", "Sarı");
shuffle($renkler); // Rastgele sıralar
Enter fullscreen mode Exit fullscreen mode

Dizi fonksiyonları, gerçek dünya uygulamalarında çok çeşitli senaryolarda kullanılabilir. Bu bölümdeki örnekler, dizi fonksiyonlarının nasıl pratik ve etkili bir şekilde kullanılabileceğini göstermektedir.


İleri Seviye Konular

Bu bölümde, dizi işaretçileri, dizi sabitleri, dizi işlevleri ve dizi sınıfları gibi daha ileri seviye konuları ele alacağız. Bu konular, dizi manipülasyonunu daha derinlemesine anlamak ve veri yönetimini daha etkili bir şekilde gerçekleştirmek için önemlidir. Bu konuları detaylı bir şekilde ele alarak daha kapsamlı bir görüş elde edelim.

Dizi İşaretçileri: Dizi Elemanlarına İşaretçi Aritmetiği ile Erişim

Dizi işaretçileri, dizilerin bellekte nasıl saklandığını anlamamıza yardımcı olur. Bir dizi işaretçisi, dizinin başlangıç adresini tutan bir değişkendir. Bu işaretçi, dizi elemanlarına doğrudan erişim sağlar. Ayrıca, işaretçi aritmetiği kullanarak dizi elemanlarına dinamik bir şekilde erişim sağlamak da mümkündür.

Örnek:

$dizi = [10, 20, 30, 40];
$diziIsaretcisi = &$dizi; // Dizi işaretçisi oluşturuldu

$ikinciEleman = $diziIsaretcisi[1]; // 20
$diziIsaretcisi[3] = 50; // Dördüncü elemanı değiştirdik
Enter fullscreen mode Exit fullscreen mode

Dizi Sabitleri: Değiştirilemez Veri Saklama

Dizi sabitleri, değiştirilemeyen ve sabit boyutta olan dizilerdir. define() fonksiyonu ile tanımlanırlar ve verileri kolayca saklamak için kullanılırlar. Dizi sabitleri, programın farklı yerlerinde kullanılan sabit değerlerin bir araya getirilmesi için idealdir.

Örnek:

define("RENKLER", ["kırmızı", "mavi", "yeşil"]);
$secilenRenk = RENKLER[1]; // "mavi"
Enter fullscreen mode Exit fullscreen mode

Dizi İşlevleri: Daha İleri Veri İşleme İmkanı

Dizi işlevleri, diziler üzerinde çeşitli işlemler yapmak için kullanılan önceden tanımlanmış fonksiyonlardır. Bu işlevler, veriyi sıralamak, filtrelemek, döndürmek, anahtarları veya değerleri almak gibi çeşitli görevleri kolaylaştırır. Bu işlevlerle daha etkili ve okunabilir kod yazabilirsiniz.

Örnek işlevler:

$dizi = [10, 20, 30, 40];

$anahtarlar = array_keys($dizi); // [0, 1, 2, 3]
$degerler = array_values($dizi); // [10, 20, 30, 40]
Enter fullscreen mode Exit fullscreen mode

Dizi Sınıfları: Daha Karmaşık Veri Yönetimi

Dizi sınıfları, dizileri nesne olarak temsil etmek ve yönetmek için kullanılan önceden tanımlanmış sınıflardır. SPL (Standard PHP Library) kütüphanesi, çeşitli dizi sınıfları sunar. Bu sınıflar, dizileri daha karmaşık senaryolarda işlemek ve yönetmek için kullanışlıdır. Dizi sınıfları, dizi işlevlerine ek olarak daha fazla esneklik ve işlevsellik sunar.

Örnek sınıflar:

$arrayObject = new ArrayObject([10, 20, 30]);
$iterator = $arrayObject->getIterator();
foreach ($iterator as $value) {
    echo $value; // 10, 20, 30
}
Enter fullscreen mode Exit fullscreen mode

Bu bölümde, dizi işaretçileri, dizi sabitleri, dizi işlevleri ve dizi sınıfları gibi daha ileri seviye konuları detaylı örneklerle ele aldık. Bu konuları öğrenerek, dizi manipülasyonunu daha derinlemesine anlamak ve daha karmaşık veri yönetimi senaryolarında başarılı olmak mümkündür.


Bu makalede, PHP dizi fonksiyonlarının temellerini ve ileri seviye konularını ayrıntılı bir şekilde ele aldık. Artık daha iyi bir şekilde dizileri kullanabilir ve verilerinizi daha etkili bir şekilde yönetebilirsiniz. Herhangi bir sorunuz olursa çekinmeden bana sorabilirsiniz. Bir sonraki yazımda görüşmek üzere.

Top comments (1)

Collapse
 
leslieeeee profile image
Leslie

Eğer bir macOS kullanıcısıysanız, ServBay.dev'yi denemeye değer. Herhangi bir şeyi kurmak için zaman harcamanıza veya birkaç gün geçirmenize gerek yok. Sadece indirin ve hemen kullanmaya başlayabilirsiniz. Birden fazla PHP sürümünü aynı anda çalıştırabilir ve kolaylıkla aralarında geçiş yapabilirsiniz.
Dürüst olmak gerekirse, bu araç PHP geliştirmemi büyük ölçüde kolaylaştırdı ve kesinlikle denemeye değer!