# array_diff

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

array_diff — Calcule la différence entre des tableaux

### Description

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 entités 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înes 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 est bien, depuis que les objets peuvent être transformés 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, reportez vous à la fonction array_udiff().

### Notes

> Note:

> Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau à plusieurs dimensions. Bien sûr, vous pouvez 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 rappel
- array_intersect() - Calcule l'intersection de tableaux
- array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index