Fonction array_uintersect

La fonction array_uintersect calcule l'intersection de tableaux en utilisant une fonction de rappel pour la comparaison des valeurs. Elle retourne un tableau contenant tous les éléments du premier tableau qui sont présents dans tous les autres tableaux. La comparaison des valeurs s'effectue via une fonction de rappel définie par l'utilisateur.

Syntaxe

phparray_uintersect(array $array1, array $array2, ..., callable $value_compare_func): array;

Exemple

Trouvons l'intersection de deux tableaux en comparant leurs valeurs à l'aide d'une fonction de rappel :

php<?php
  $array1 = [1, 2, 3, 4, 5];
  $array2 = [2, 4, 6, 8, 10];
  
  $res = array_uintersect($array1, $array2, function($a, $b) {
    if ($a === $b) {
      return 0;
    }
    return ($a > $b) ? 1 : -1;
  });
  
  print_r($res);
?>

Résultat de l'exécution du code :

php[2, 4]

Exemple

Comparaison de tableaux de chaînes de caractères à l'aide d'une fonction personnalisée :

php<?php
  $array1 = ['a', 'b', 'c', 'd', 'e'];
  $array2 = ['b', 'd', 'f', 'h', 'j'];
  
  $res = array_uintersect($array1, $array2, function($a, $b) {
    return strcmp($a, $b);
  });
  
  print_r($res);
?>

Résultat de l'exécution du code :

php['b', 'd']

Voir aussi

  • la fonction array_intersect,
    qui calcule l'intersection de tableaux
  • la fonction array_intersect_assoc,
    qui calcule l'intersection de tableaux avec une vérification supplémentaire des index
  • la fonction array_uintersect_assoc,
    qui calcule l'intersection de tableaux avec une vérification supplémentaire des index, en utilisant une fonction de rappel