array_diff()
Bu fonksiyon 2 veya daha fazla diziyi sadece değerleri açısından karşılaştırır ve ilk dizide olup diğer dizi veya dizilerde bulunmayan elemanları bir dizi halinde geri döndürür. Bu işlemleri matematikte kümeler arası fark işlemlerine benzetebiliriz.
syntax:
array_diff(dizi1, dizi2, dizi3...);
parametreler:
- dizi1 : Gerekli bir parametredir. Elemanlarını diğer dizilerde arayacağımız dizidir.
- dizi2 : Gerekli bir parametredir. Elemanlarını dizi1 dizisiyle karşılaştırırız.
- dizi3 : Opsiyonel bir parametredir. Yani boş bırakılabilir. Elemanlarını dizi1 dizisiyle karşılaştırırız.
örnek:
Aşağıdaki örnekte birinci dizide olupta ikinci dizide olmayan (sadece eleman değerleri açısından) ahmet ve hamza isimleri bize sonuç olarak dönecektir.
<?php
$dizi1=array("bir"=>"ahmet","iki"=>"mehmet","uc"=>"ali","dort"=>"hamza");
$dizi2=array("bir"=>"mehmet","iki"=>"ayşe","uc"=>"veli","dort"=>"ali");
$sonuc_dizisi=array_diff($dizi1,$dizi2);
print_r($sonuc_dizisi);
// ÇIKTI: Array ( [bir] => ahmet [dort] => hamza )
?>
Bu örnekte ise birinci dizide olupta ikinci dizide veya üçüncü dizide olmayan (sadece eleman değerleri açısından) ahmet ismi bize sonuç olarak dönecektir.
<?php
$dizi1=array("bir"=>"ahmet","iki"=>"mehmet","uc"=>"ali","dort"=>"hamza");
$dizi2=array("bir"=>"mehmet","iki"=>"ayşe");
$dizi3=array("bir"=>"ali","iki"=>"hamza","uc"=>"fatma");
$sonuc_dizisi=array_diff($dizi1,$dizi2,$dizi3);
print_r($sonuc_dizisi);
// ÇIKTI: Array ( [bir] => ahmet )
?>
array_diff_assoc()
Bu fonksiyon 2 veya daha fazla diziyi değerleri ve anahtarları(key) açısından karşılaştırır ve ilk dizide olup diğer dizi veya dizilerde bulunmayan elemanları bir dizi halinde geri döndürür.
syntax:
array_diff_assoc(dizi1, dizi2, dizi3...);
parametreler:
- dizi1 : Gerekli bir parametredir. Elemanlarını ve elemanların anahtar değerlerini diğer dizilerde arayacağımız dizidir.
- dizi2 : Gerekli bir parametredir. Elemanlarını ve elemanların anahtar değerlerini dizi1 dizisiyle karşılaştırırız.
- dizi3 : Opsiyonel bir parametredir. Yani boş bırakılabilir. Elemanlarını ve elemanların anahtar değerlerini dizi1 dizisiyle karşılaştırırız.
örnek:
Aşağıdaki örnekte birinci dizide olupta ikinci dizide olmayan (eleman değerleri ve anahtar değerleri açısından) 'ad'=>'Ahmet' ve 'soyad'=>'Ardahanlı' çiftleri bize sonuç olarak dönecektir. 'dogum'=>'1989' ve 'cinsiyet'=>'Erkek' değer çiftleri ikinci dizide de var olduğundan o elemanlar elenmiş oldu.
<?php
$ogrenci1=array('ad'=>'Ahmet','soyad'=>'Ardahanlı','dogum'=>'1989','cinsiyet'=>'Erkek');
$ogrenci2=array('isim'=>'Ahmet','soyisim'=>'Yılmaz','dogum'=>'1989','cinsiyet'=>'Erkek');
$sonuc_dizisi3=array_diff_assoc($ogrenci1,$ogrenci2);
print_r($sonuc_dizisi3);
// ÇIKTI: Array ( [ad] => Ahmet [soyad] => Ardahanlı )
?>
İkinci örnekte ise birinci dizide olupta iki veya üçüncü dizide olmayan değer çiftleri (anahtar-değer) 'iki'=>'mercedes' ve 'dort'=>'audi' elemanlarıdır.
<?php
$arabalar1=array("bir"=>"toyota","iki"=>"mercedes","uc"=>"bmw","dort"=>"audi");
$arabalar2=array("bir"=>"toyota","iki"=>"audi","uc"=>"bmw");
$arabalar3=array("iki"=>"toyota","uc"=>"mercedes","dort"=>"bmw");
$sonuc_dizisi4=array_diff_assoc($arabalar1,$arabalar2,$arabalar3);
print_r($sonuc_dizisi4);
// ÇIKTI: Array ( [iki] => mercedes [dort] => audi )
?>
array_diff_key()
Bu fonksiyon 2 veya daha fazla diziyi sadece anahtarları(key) açısından karşılaştırır ve ilk dizide olup diğer dizi veya dizilerde bulunmayan elemanları bir dizi halinde geri döndürür.
syntax:
array_diff_key(dizi1, dizi2, dizi3...);
parametreler:
- dizi1 : Gerekli bir parametredir. Elemanlarının anahtar değerlerini diğer dizilerde arayacağımız dizidir.
- dizi2 : Gerekli bir parametredir. Elemanlarının anahtar değerlerini dizi1 dizisiyle karşılaştırırız.
- dizi3 : Opsiyonel bir parametredir. Yani boş bırakılabilir. Elemanlarının anahtar değerlerini dizi1 dizisiyle karşılaştırırız.
örnek:
Aşağıdaki örnekte birinci dizide olupta ikinci dizide olmayan (sadece anahtarlar açısından) 'iki' ve 'uc' anahtar değerleri vardır ve fonksiyon bize 'iki'=>'mor' ve 'uc'=>'sarı' elemanlarını döndürür.
<?php
$renkler1=array("bir"=>"kırmızı","iki"=>"mor","uc"=>"sarı");
$renkler2=array("bir"=>"yeşil","dort"=>"mavi","bes"=>"beyaz");
$sonuc_dizisi=array_diff_key($renkler1,$renkler2);
print_r($sonuc_dizisi);
// ÇIKTI: Array ( [iki] => mor [uc] => sarı )
?>
Bu örnekte ise birinci dizide olupta ikinci dizide veya üçüncü dizide olmayan (sadece anahtar değerleri açısından) 'yaş' ve 'cinsiyet' anahtar değerleri vardır ve fonksiyon bize 'yaş'=>'1' ve 'cinsiyet'=>'erkek' elemanlarını döndürür.
<?php
$ogrenci=array("isim"=>"Üzeyir Ali","yaş"=>"1","cinsiyet"=>"erkek");
$kitap=array("isim"=>"Fatih-Harbiye","yazar"=>"Peyami Safa");
$araba=array("marka"=>"Toyota","seri"=>"Avensis");
$sonuc_dizisi=array_diff_key($ogrenci,$kitap,$araba);
print_r($sonuc_dizisi);
// ÇIKTI: Array ( [yaş] => 1 [cinsiyet] => erkek )
?>