array_unique

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

array_uniqueDédoublonne un tableau

Description

array_unique(array $array, int $flags = SORT_STRING): array

array_unique() extrait du tableau array les valeurs distinctes, et supprime tous les doublons.

Il est à noter que les clés sont préservées. Si plusieurs éléments comparés sont égaux sous le flags donné, alors la clé et la valeur du premier élément égal seront conservées.

Note: Deux éléments sont considérés comme égaux si et seulement si (string) $elem1 === (string) $elem2, c.-à-d. lorsque la représentation en chaîne de caractères est identique.

Liste de paramètres

array

Le tableau d'entrée.

flags

Le second paramètre optionnel flags peut être utilisé pour modifier le comportement de comparaison en utilisant les valeurs suivantes :

Drapeau de type de comparaison :

  • SORT_REGULAR - compare les éléments normalement (ne modifie pas les types)
  • SORT_NUMERIC - compare les éléments numériquement
  • SORT_STRING - compare les éléments comme des chaînes
  • SORT_LOCALE_STRING - compare les éléments comme des chaînes, suivant la locale courante.

Valeurs de retour

Retourne le tableau filtré.

Historique

Version Description
7.2.0 Si flags est SORT_STRING, précédemment array était copié et les éléments non-uniques étaient supprimés (sans compresser le tableau après), mais maintenant un nouveau tableau est construit en ajoutant les éléments uniques. Par conséquent, le résultat final peut avoir des index numériques différents.

Exemples

Exemple #1 Exemple avec array_unique()

<?php

$input
= ["a" => "green", "red", "b" => "green", "blue", "red"];
$result = array_unique($input);
print_r($result);

?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
    [0] => red
    [1] => blue
)

Exemple #2 Exemple avec array_unique() et les types

<?php

$input
= [4, "4", "3", 4, 3, "3"];
$result = array_unique($input);
var_dump($result);

?>

L'exemple ci-dessus va afficher :

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

Notes

Note: Il est à noter que array_unique() ne fonctionne pas avec des tableaux multidimensionnels.

Voir aussi