Ich weiß, dass es array_unique
function gibt, aber ich möchte Duplikate entfernen. Gibt es eine eingebaute Funktion oder muss ich meine eigene rollen?
Beispieleingabe:
%Vor%Erwartete Ausgabe:
%Vor% Sie können eine Kombination aus array_unique
, % verwenden. co_de% und array_diff_assoc
:
Sie können
verwenden %Vor%Siehe
array_count_values
- Zählt alle Werte eines Arrays array_filter
- Filtert Elemente eines Arrays mit einer Callback-Funktion array_keys
- Gibt alle Schlüssel oder eine Teilmenge der Schlüssel eines Arrays zurück Wenn Sie nur Werte im Array beibehalten möchten, die bereits eindeutig sind, anstatt nur eine eindeutige Instanz für jeden Wert auszuwählen, müssen Sie in der Tat eine eigene Instanz erstellen. Integrierte Funktionalität ist nur dazu da, Wertsets zu bereinigen anstatt zu filtern.
Die Antwort oben sieht gut aus, aber nebenbei bemerkt: Wenn Sie jemals Duplikate eliminieren, aber die erste verlassen wollen, wäre die Verwendung von array_flip zweimal eine ziemlich einfache Möglichkeit. array_flip (array_flip (x))
Nur teilweise relevant für diese spezielle Frage - aber ich habe diese Funktion aus Gumbo's Antwort für multidimensionale Arrays erstellt:
%Vor% In diesem Beispiel hatte ich zwischengespeicherte Status und jeder andere als der Standardwert war 0 (der Standardwert war 1). Ich indexiere das Array default
aus den IDs und wandle es dann in eine Zeichenfolge um. Um das klarzustellen - das zurückgegebene Ergebnis davon ist die ID des Standardstatus, vorausgesetzt, es befindet sich im selben Teil des multidimensionalen Arrays und nicht in seinem Schlüssel
PHP.net Ссылка
array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
Nimmt ein Eingabearray und gibt ein neues Array ohne doppelte Werte zurück.
Neue Lösung:
%Vor%