Heim > Backend-Entwicklung > PHP-Problem > So entfernen Sie identische Arrays in PHP

So entfernen Sie identische Arrays in PHP

PHPz
Freigeben: 2023-04-19 09:41:43
Original
457 Leute haben es durchsucht

In PHP müssen wir manchmal ein Array deduplizieren, also wiederholte Elemente entfernen. Dieser Prozess mag einfach erscheinen, aber unterschiedliche Situationen erfordern möglicherweise unterschiedliche Ansätze. Als Nächstes besprechen wir einige gängige Array-Deduplizierungsmethoden und ihre Anwendungsszenarien.

1. Verwenden Sie die in PHP integrierte Funktion array_unique()

PHP stellt eine integrierte Funktion array_unique() bereit, mit der Deduplizierungsvorgänge direkt für ein Array ausgeführt werden können. Die Syntax für die Verwendung dieser Funktion lautet wie folgt:

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
Nach dem Login kopieren

Dabei ist $array das zu deduplizierende Array, $sort_flags ist ein optionaler Parameter, der zur Angabe der Vergleichsmethode von Elementen verwendet wird und Folgendes annehmen kann die folgenden Werte: #🎜🎜 #

    SORT_REGULAR – Elemente auf die übliche Weise vergleichen (ohne den Datentyp der Elemente zu ändern)
  • SORT_NUMERIC – Elemente basierend auf der numerischen Größe vergleichen
  • SORT_STRING – Folgen Sie String-Vergleichselementen
  • SORT_LOCALE_STRING – Vergleicht Elemente gemäß dem aktuellen Gebietsschema
  • SORT_NATURAL – Vergleicht Elemente gemäß ihrer natürlichen Reihenfolge #🎜 🎜#
  • Beispiel Der Code lautet wie folgt:
$arr = array(1, 2, 2, 3, 4, 4, 5);
$new_arr = array_unique($arr);
print_r($new_arr); // 输出:Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )
Nach dem Login kopieren

Der Vorteil der Verwendung von array_unique() besteht darin, dass es einfach und benutzerfreundlich ist und der Array-Deduplizierungsvorgang durchgeführt werden kann in einer Codezeile abgeschlossen. Der Nachteil besteht darin, dass nur eindimensionale Arrays verarbeitet werden können. Wenn Sie mehrdimensionale Arrays verarbeiten möchten, ist eine zusätzliche Verarbeitung erforderlich.

2. Schleife + bedingte Beurteilung verwenden

Wenn Sie ein mehrdimensionales Array verarbeiten möchten, können Sie Schleife + bedingte Beurteilung verwenden, um Duplikate zu entfernen. Die Idee dieser Methode besteht darin, das Array zu durchlaufen, jedes Element der Reihe nach mit dem vorherigen Element im Array zu vergleichen (mit Ausnahme derjenigen, die dedupliziert wurden) und zu überspringen, wenn Duplikate gefunden werden, andernfalls das Element dem deduplizierten Array hinzuzufügen. Der Beispielcode lautet wie folgt:

$arr = array(
    array(1, 2, 2),
    array(3, 4, 4),
    array(5, 6, 7),
    array(1, 2, 2)
);

$new_arr = array();
foreach ($arr as $value) {
    if (!in_array($value, $new_arr)) {
        $new_arr[] = $value;
    }
}
print_r($new_arr); // 输出:Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 2 ) [1] => Array ( [0] => 3 [1] => 4 [2] => 4 ) [2] => Array ( [0] => 5 [1] => 6 [2] => 7 ) )
Nach dem Login kopieren

Der Vorteil der Verwendung von Schleife + bedingter Beurteilung besteht darin, dass sie für verschiedene Formen von Arrays, einschließlich mehrdimensionaler Arrays, geeignet ist und eine gute Leistung aufrechterhalten kann, wenn die Menge an Daten sind groß. Der Nachteil besteht darin, dass mehr Code geschrieben werden muss und bei geringfügigen Mängeln leicht Fehler passieren können.

3. Verwenden Sie die in PHP integrierte Funktion array_reduce()

Zusätzlich zu array_unique() bietet PHP auch eine integrierte Funktion array_reduce(), die verwendet werden kann um Reduktionsoperationen an Arrays durchzuführen. Für die Array-Deduplizierung können wir das Array in ein assoziatives Array mit Array-Elementen als Schlüssel und leeren Werten konvertieren und es dann mit dem ursprünglichen Array zusammenführen. Wenn dieselben Elemente angetroffen werden, überspringen Sie sie, andernfalls fügen Sie sie der Zusammenführung in der Folge hinzu Array. Der Beispielcode lautet wie folgt:

$arr = array(1, 2, 2, 3, 4, 4, 5);

$new_arr = array_reduce($arr, function($carry, $item) {
    if(!array_key_exists($item, $carry)) {
        $carry[$item] = null;
    }
    return $carry;
}, array());

print_r(array_keys($new_arr)); // 输出:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Nach dem Login kopieren

Der Vorteil der Verwendung von array_reduce() besteht darin, dass verschiedene Formen von Arrays flexibel verarbeitet werden können und der Code prägnant ist. Der Nachteil besteht darin, dass die Leistung bei Arrays mit großen Datenmengen reduziert sein kann.

Zusammenfassend lässt sich sagen, dass es in PHP viele Möglichkeiten gibt, Arrays zu deduplizieren, und Sie können je nach Situation die geeignete Methode auswählen. Für eindimensionale Arrays wird empfohlen, zuerst array_unique() zu verwenden; für mehrdimensionale Arrays wird empfohlen, Schleife + bedingte Beurteilung oder array_reduce() zu verwenden. Programmleistung und Datenqualität können durch Deduplizierung von Daten verbessert werden.

Das obige ist der detaillierte Inhalt vonSo entfernen Sie identische Arrays in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage