array_unique
(PHP 4 >= 4.0.1, PHP 5)
array_unique — Entfernt doppelte Werte aus einem Array
Beschreibung
$array
[, int $sort_flags = SORT_STRING
] )
Erwartet ein array und gibt ein neues Array
zurück, aus dem alle doppelten Einträge entfernt wurden.
Beachten Sie, dass Schlüssel bewahrt bleiben. Erst behandelt
array_unique() die Werte als Strings und sortiert
sie, danach wird der erste gefundene Schlüssel behalten, und alle
folgenden Schlüssel ignoriert. Das heißt nicht, dass der Schlüssel
des ersten zugehörigen Wertes aus dem unsortierten
array behalten wird.
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.
Parameter-Liste
-
array -
Das Eingabe-Array.
-
sort_flags -
Der optionale zweite Parameter
sort_flagskann mit den folgenden Werten genutzt werden, um das Sortierverhalten zu ändern:Sorting type flags:
-
SORT_REGULAR- vergleicht die Einträge normal (keine Typänderung) -
SORT_NUMERIC- vergleicht die Einträge numerisch -
SORT_STRING- vergleicht die Einträge als Strings -
SORT_LOCALE_STRING- vergleicht die Einträge als Strings, basierend auf der aktuellen Locale.
-
Rückgabewerte
Gibt das gefilterte Array zurück.
Changelog
| Version | Beschreibung |
|---|---|
| 5.2.10 |
Der Standardwert von sort_flags wurde auf
SORT_STRING zurückgesetzt.
|
| 5.2.9 |
Der optionale Parameter sort_flags
wurde mit dem Standardwert SORT_REGULAR hinzugefügt.
Vor 5.2.9 wurde die Sortierung intern mit SORT_STRING
durchgeführt.
|
Beispiele
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"
}
Anmerkungen
Hinweis: Beachten Sie, dass array_unique() nicht dazu gedacht ist, auf mehrdimensionalen Arrays zu arbeiten.