(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
array_unique — Entfernt doppelte Werte aus einem Array
Erwartet ein array
und gibt ein neues Array zurück, aus dem alle doppelten Einträge entfernt wurden.
Es ist zu beachten, dass Schlüssel bewahrt bleiben. Werden mehrere Elemente gemäß den angegebenen flags
als gleich interpretiert, dann werden Schlüssel und Wert des ersten gleichen Elements bewahrt.
Hinweis: Zwei Elemente werden nur dann als gleich angesehen, wenn
(string) $elem1 === (string) $elem2
, d. h. wenn die String-Repräsentation die gleiche ist, wird das erste Element verwendet.
array
Das Eingabe-Array.
flags
Der optionale zweite Parameter flags
kann mit den folgenden Werten genutzt werden, um das Vergleichsverhalten zu ändern:
Flags für den Vergleichstyp:
SORT_REGULAR
- vergleicht die Einträge normal (keine Typänderung)SORT_NUMERIC
- vergleicht die Einträge numerischSORT_STRING
- vergleicht die Einträge als StringsSORT_LOCALE_STRING
- vergleicht die Einträge als Strings, basierend auf der aktuellen Locale. Gibt das gefilterte Array zurück.
Version | Beschreibung |
---|---|
7.2.0 | Ist flags gleich SORT_STRING , wurde früher array kopiert und doppelte Elemente wurden entfernt (ohne das Array danach zu packen), aber nun wird ein neues Array durch Hinzufügen der einzigartigen Elemente aufgebaut. Dies kann unterschiedliche numerische Indexe ergeben. |
Beispiel #1 array_unique()-Beispiel
<?php
$input = array("a" => "grün", "rot", "b" => "grün", "blau", "rot");
$result = array_unique($input);
print_r($result);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array ( [a] => grün [0] => rot [1] => blau )
Beispiel #2 array_unique() und Typen
<?php
$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(2) { [0] => int(4) [2] => string(1) "3" }
Hinweis: Es ist zu beachten, dass array_unique() nicht für mehrdimensionale Arrays gedacht ist.