You need to enable JavaScript to run this app.

Ana içeriğe geç

Dizilerle Çalışma ve Array_map

Administrator
Dizilerle Çalışma ve Array_map
Dizilerle Çalışma ve Array_map
Kod:
array_map
PHP, web uygulamaları geliştirirken veri işleme konusunda oldukça güçlüdür ve bu verilerin büyük bir kısmı genellikle diziler (arrays) şeklinde tutulur. Dizilerle çalışırken verileri dönüştürmek, filtrelemek veya belirli işlemlerden geçirmek sıkça karşılaşılan bir ihtiyaçtır. İşte burada devreye
Kod:
array_map
fonksiyonu girer.
Kod:
array_map
fonksiyonu, bir dizinin her bir elemanına bir geri çağırma (callback) fonksiyonu uygulayarak yeni bir dizi döndürür. Bu, özellikle karmaşık döngüler yazmak yerine daha temiz ve okunabilir kodlar oluşturmanızı sağlar.
Temel Kullanım
Önce basit bir örnekle başlayalım. Bir sayı dizisindeki her sayıyı ikiyle çarpalım:
PHP

Kod:
<?php
// Sayı dizimiz
$sayilar = [1, 2, 3, 4, 5];
// Her sayıyı ikiyle çarpan anonim bir fonksiyon (callback)
$ikiyle_carp = function($sayi) {
    return $sayi * 2;
};
// array_map kullanarak her elemana fonksiyonu uygula
$iki_kat_sayilar = array_map($ikiyle_carp, $sayilar);
echo "Orjinal Sayılar: ";
print_r($sayilar);
echo "İki Katı Sayılar: ";
print_r($iki_kat_sayilar);
?>
Çıktı:
Kod:
Orjinal Sayılar: Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
İki Katı Sayılar: Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)
Bu örnekte,
Kod:
$ikiyle_carp
adında anonim bir fonksiyon tanımladık ve
Kod:
array_map
'e ilk parametre olarak verdik. İkinci parametre ise üzerinde işlem yapılacak dizimiz
Kod:
$sayilar
. Sonuç olarak her elemanı dönüştürülmüş yeni bir dizi elde ettik.
Birden Fazla Diziyle Çalışma
Kod:
array_map
'in güzel özelliklerinden biri de birden fazla diziyle aynı anda çalışabilmesidir. Callback fonksiyonunuz,
Kod:
array_map
'e geçirdiğiniz her diziden birer eleman alacaktır.
PHP

Kod:
<?php
$ilk_dizi = [10, 20, 30];
$ikinci_dizi = [1, 2, 3];
// İki dizinin elemanlarını toplayan fonksiyon
$toplama_fonksiyonu = function($deger1, $deger2) {
    return $deger1 + $deger2;
};
// array_map ile iki dizinin elemanlarını topla
$toplamlar = array_map($toplama_fonksiyonu, $ilk_dizi, $ikinci_dizi);
echo "Toplamlar: ";
print_r($toplamlar);
?>
Çıktı:
Kod:
Toplamlar: Array
(
    [0] => 11
    [1] => 22
    [2] => 33
)
Karmaşık Dizilerde Kullanım (Nesne Dizisi Örneği)
Kod:
array_map
'i genellikle veritabanından çektiğiniz veya bir API'den aldığınız nesne dizileri üzerinde de kullanabilirsiniz. Diyelim ki, kullanıcı nesnelerinden oluşan bir dizimiz var ve sadece kullanıcı adlarını almak istiyoruz:
PHP

Kod:
<?php
class Kullanici {
    public $id;
    public $ad;
    public $email;
    public function __construct($id, $ad, $email) {
        $this->id = $id;
        $this->ad = $ad;
        $this->email = $email;
    }
}
$kullanicilar = [
    new Kullanici(1, "Ali Yılmaz", "ali@example.com"),
    new Kullanici(2, "Ayşe Demir", "ayse@example.com"),
    new Kullanici(3, "Mehmet Can", "mehmet@example.com"),
];
// Her kullanıcı nesnesinden sadece 'ad' özelliğini al
$kullanici_adlari = array_map(function($kullanici) {
    return $kullanici->ad;
}, $kullanicilar);
echo "Kullanıcı Adları: ";
print_r($kullanici_adlari);
?>
Çıktı:
Kod:
Kullanıcı Adları: Array
(
    [0] => Ali Yılmaz
    [1] => Ayşe Demir
    [2] => Mehmet Can
)

Neden
Kod:
array_map
Kullanmalıyız?
  • Okunabilirlik:
    Kod:
    foreach
    döngüsüne göre daha kısa ve niyetinizi daha net belli eden bir yazım sunar.
  • Fonksiyonel Programlama: Veri dönüşümlerini daha fonksiyonel bir yaklaşımla yapmanızı sağlar.
  • Performans: Genellikle büyük dizilerde
    Kod:
    foreach
    döngülerine kıyasla daha optimize çalışabilir, ancak bu durum kullanıma göre değişebilir.
  • Esneklik: Anonim fonksiyonlarla birlikte kullanıldığında çok esnek veri dönüşümleri yapmanıza olanak tanır.