Heim >Backend-Entwicklung >PHP-Problem >So entfernen Sie Duplikate aus einem Array in PHP
Wenn wir in der PHP-Sprache Duplikate aus einem Array entfernen müssen, gibt es verschiedene Möglichkeiten, dieses Ziel zu erreichen. In diesem Artikel werden einige Methoden und Techniken vorgestellt, die Ihnen helfen, Duplikate aus jedem PHP-Array zu entfernen.
Die Funktion array_unique() von PHP kann alle Duplikate im Array auf einmal entfernen. Diese Funktion akzeptiert ein Array als Argument und gibt ein eindeutiges Array zurück, das nur die unterschiedlichen Werte des ursprünglichen Arrays enthält. Der folgende Codeausschnitt zeigt beispielsweise, wie Sie mit der Funktion array_unique() Duplikate im Array $numbers entfernen:
$numbers = array(1, 2, 3, 1, 4, 2, 5); $unique_numbers = array_unique($numbers); print_r($unique_numbers);
Die Ausgabe dieses Codes lautet: Array ( [0] => 1 [1] => ; 2 [2] => 3 [4] => 4 [6] =>
Bitte beachten Sie, dass sich die Schlüsselnamen im zurückgegebenen Array unterscheiden können. Wenn Sie das Array nach den ursprünglichen Schlüsselnamen neu anordnen müssen, verwenden Sie die Funktion array_values() wie folgt:
$numbers = array(1, 2, 3, 1, 4, 2, 5); $unique_numbers = array_values(array_unique($numbers)); print_r($unique_numbers);
Dieser Code gibt das gleiche Ergebnis aus, aber in diesem Fall ist die Reihenfolge der Schlüssel im Array dieselbe : Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Wenn die Funktion array_unique() nicht verfügbar ist, können wir die Schleife und die Funktion in_array() verwenden, um dieselbe Funktionalität manuell zu erreichen. Die Funktion in_array() sucht nach einem Wert im Array und gibt den entsprechenden booleschen Wert zurück. Mithilfe einer Schleife in Kombination mit der Funktion in_array() können wir das gesamte Array durchlaufen und nur die Werte speichern, die nicht im neuen Array enthalten sind.
Zum Beispiel zeigt das folgende Code-Snippet, wie man diese Technik verwendet:
$numbers = array(1, 2, 3, 1, 4, 2, 5); $unique_numbers = array(); foreach($numbers as $n) { if (!in_array($n, $unique_numbers)) { $unique_numbers[] = $n; } } print_r($unique_numbers);
Die Ausgabe dieses Codes wird auch sein: Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 4 [6] =>
Bitte beachten Sie, dass der Nachteil dieses Ansatzes darin besteht, dass er mehr Code und Verarbeitungszeit erfordert als die Verwendung der Funktion array_unique().
Eine andere Möglichkeit, Duplikate in einem Array zu entfernen, ist die Verwendung der Funktionen array_flip() und array_keys(). Die Funktion array_flip() gibt ein neues Array zurück. Die Schlüssel im neuen Array sind die Werte im ursprünglichen Array und die Werte sind die Schlüsselnamen der Schlüssel im ursprünglichen Array. Mit dieser Methode können wir alle Schlüssel entfernen, die sich auf doppelte Werte im ursprünglichen Array beziehen.
Als nächstes können wir die Funktion array_keys() verwenden, um ein Array ohne Duplikate zurückzugeben.
Der folgende Code zeigt, wie diese Methode verwendet wird:
$numbers = array(1, 2, 3, 1, 4, 2, 5); $unique_numbers = array_keys(array_flip($numbers)); print_r($unique_numbers);
Die Ausgabe dieses Codes ist: Array ( [0] => 1 [1] => 2 [2] => 3 [3] = > 4 [4] => 5 )
Bitte beachten Sie, dass diese Methode nur für Arrays aus Zahlen oder Zeichenfolgen funktioniert.
Zusammenfassung
Egal welche Methode Sie wählen, das Entfernen von Duplikaten aus einem PHP-Array ist einfach. Wie in diesem Artikel erläutert, können Sie dies mit der Funktion array_unique(), Schleifen und den Funktionen in_array(), array_flip() und array_keys() erreichen. Letztendlich hängt die Wahl der Methode möglicherweise von dem Problem ab, das Sie lösen möchten, und von der PHP-Version, die Sie in Ihrem Produktionscode verwenden.
Das obige ist der detaillierte Inhalt vonSo entfernen Sie Duplikate aus einem Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!