(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
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
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
)
Exemple #2 Exemple avec la fonction array_diff()
avec des types qui ne correspondent pas
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.
<?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');
?>
Pour utiliser une fonction de comparaison alternative, repportez 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