Calcule la différence entre des tableaux

# array_diff

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_diff — Calcule la différence entre des tableaux

### Description

function array_diff(array `$array`, array `...$arrays`): array

array_diff() compare le tableau `array` avec un ou plusieurs tableaux et retourne les valeurs du tableau `array` qui ne sont pas présentes dans les autres tableaux.

### Liste de paramètres

`array`

  Le tableau depuis lequel comparer

`arrays`

  Tableaux à comparer contre

### Valeurs de retour

Retourne un tableau contenant toutes les entrées du tableau `array` qui ne sont présentes dans aucun des autres tableaux. Les clés du tableau `array` sont préservées.

### Historique

Version | Description
--- | ---
8.0.0 | Cette fonction peut désormais être appelée avec un seul paramètre. Auparavant, au moins deux paramètres étaient nécessaires.

### Exemples

Exemple #1 Exemple avec array_diff()

    <?php
    $array1 = array("a" => "green", "red", "blue", "red");
    $array2 = array("b" => "green", "yellow", "red");
    $result = array_diff($array1, $array2);

    print_r($result);
    ?>

Les valeurs multiples dans $array1 seront toutes traitées de la même façon. Ce qui affichera :

    Array
    (
        [1] => blue
    )

Deux éléments sont considérés comme égaux si et seulement si `(string) $elem1 === (string) $elem2` ; en somme, lorsque la représentation de la chaîne de caractères est la même.

Exemple #2 Exemple avec la fonction array_diff() avec des types qui ne correspondent pas

    <?php
    // Ceci va générer une notice car un tableau ne peut pas être transformé en chaîne de caractères.
    $source = [1, 2, 3, 4];
    $filter = [3, 4, [5], 6];
    $result = array_diff($source, $filter);

    // Alors que ceci fonctionne, car les objets peuvent être convertis en chaîne de caractères.
    class S {
      private $v;

      public function __construct(string $v) {
        $this->v = $v;
      }

      public function __toString() {
        return $this->v;
      }
    }

    $source = [new S('a'), new S('b'), new S('c')];
    $filter = [new S('b'), new S('c'), new S('d')];

    $result = array_diff($source, $filter);

    // $result contient désormais une instance de S('a');
    var_dump($result);
    ?>

Pour utiliser une fonction de comparaison alternative, se reporter à la fonction array_udiff().

### Notes

> Note:

> Il est à noter que cette fonction ne vérifie qu'une seule dimension d'un tableau à plusieurs dimensions. Bien sûr, il est possible de vérifier des dimensions plus profondes en utilisant `array_diff($array1[0], $array2[0]);`.

### Voir aussi

- array_diff_assoc() - Calcule la différence de deux tableaux, en prenant aussi en compte les clés
- array_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction de rappel
- array_intersect() - Calcule l'intersection de tableaux
- array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open