Skip to content

January 9, 2012

2

Array Diff ile Array Elemanlarını Filtreleme

array-diff-filter

Merhaba arkadaşlar, bu yazımızda bir array içerisinde istemediğimiz elemanları (boş olanlar vb) array_diff ile kolayca nasıl temizleyebileceğimizi (filtreleyebileceğimizi) inceleyeceğiz.

Kullanacağımız yöntemle önce array elemanları üzerinde işlem yapacağız. Daha sonra array anahtarları üzerinde işlem yapmayı göreceğiz.

array_diff ile Boş Elemanları Temizleme:

$arr1 arrayimizi boş bir array ile array_diff kullanarak karşılaştırıyoruz. array_diff bize boş değerli olmayan elemanların bulunduğu yeni bir array döndürüyor.

<?php

$arr1 = array("isim"    => "Ahmet",
              "soyisim" => "AY",
              "adres"   => "");

$newArr = array_diff($arr1, array(""));

print_r($newArr);
?>

Çıktısı :

Array
(
    [isim] => Ahmet
    [soyisim] => AY
)

array_diff_key ile Boş Anahtarlı Arrayleri Temizleme:

Yine $arr1 arrayimizi anahtarıda boş bir array ile array_diff_key kullanarak karşılaştırıyoruz. array_diff_key bize anahtarı boş olmayan elemanların bulunduğu yeni bir array döndürüyor.

<?php

$arr1 = array("isim"    => "Ahmet",
              "soyisim" => "AY",
              "adres"   => "",
              ""        => "ekstra bilgi");

$newArr = array_diff_key($arr1, array("" => ""));

print_r($newArr);
?>

Çıktısı :

Array
(
    [isim] => Ahmet
    [soyisim] => AY
    [adres] =>
)

Sonuç:

Sonuç olarak array_diff kullanarak birçok işlevi yerine getirebiliriz. array_diff ‘in değerler üzerinde, array_diff_key ‘in ise anahtarlar üzerinde işlem yaptığını unutmayalım.

Herkese İyi Çalışmalar

Toplam 2 Yorum Yorum Yaz
  1. Serkan Keçer
    Jan 9 2012

    Merhaba Mustafa;
    Güzel bir bilgi eline sağlık. Aynı konuya ben de değinmiştim bir zamanlar. array_diff ile arrayden bir eleman çıkartma başlığı altında.

    http://kecher.blogcu.com/php-array-den-bir-eleman-cikartma/10184878

    Çalışmaların devamını dilerim.

    Reply
  2. Kadir
    Dec 4 2017

    Teşekkürler. Çok işime yaradı.

    Reply

Sizin fikriniz nedir? Lütfen aşağıdaki formu kullanarak yorum yapın.

(gerekli)
(gerekli)