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

phparray_udiff(array1, array2, ..., callback): array;

Örnek

Karşılaştırma için callback fonksiyonu kullanarak iki sayı dizisini karşılaştıralım:

php<?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:

php[1, 2]

Örnek

Özel karşılaştırma fonksiyonu kullanarak string dizilerini karşılaştıralım:

php<?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:

php['a', 'b']

Örnek

Birden fazla dizi ile karşılaştırma:

php<?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:

php[1]

Ayrıca Bakınız