array_udiff Fonksiyonu
array_udiff fonksiyonu, dizileri karşılaştırır ve ilk dizide bulunan, ancak sonraki dizilerde bulunmayan elemanları döndürür. Elemanların karşılaştırılması için kendinizin tanımladığı bir callback fonksiyonu kullanılır. İlk parametre, karşılaştırma yapılacak ana dizidir, sonraki parametreler ise ilk dizinin karşılaştırılacağı diğer dizilerdir.
Sözdizimi
array_udiff(array1, array2, ..., callback): array;
Örnek
Karşılaştırma için callback fonksiyonu kullanarak iki sayı dizisini karşılaştıralım:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = [3, 4, 5, 6, 7];
$res = array_udiff($arr1, $arr2, function($a, $b) {
return $a <=> $b;
});
print_r($res);
?>
Kodun çalıştırılmasının sonucu:
[1, 2]
Örnek
Özel karşılaştırma fonksiyonu kullanarak string dizilerini karşılaştıralım:
<?php
$arr1 = ['a', 'b', 'c', 'd'];
$arr2 = ['c', 'd', 'e', 'f'];
$res = array_udiff($arr1, $arr2, function($a, $b) {
return strcmp($a, $b);
});
print_r($res);
?>
Kodun çalıştırılmasının sonucu:
['a', 'b']
Örnek
Birden fazla dizi ile karşılaştırma:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = [2, 3, 4];
$arr3 = [3, 4, 5];
$res = array_udiff($arr1, $arr2, $arr3, function($a, $b) {
return $a <=> $b;
});
print_r($res);
?>
Kodun çalıştırılmasının sonucu:
[1]
Ayrıca Bakınız
-
array_difffonksiyonu,
diziler arasındaki farkı hesaplar -
array_intersectfonksiyonu,
diziler arasındaki kesişimi hesaplar -
array_udiff_assocfonksiyonu,
indekslerin ek kontrolü ile farkı hesaplar