Heim >Backend-Entwicklung >PHP-Problem >So entfernen Sie doppelte Arrays in PHP
In PHP sind Arrays ein sehr häufig verwendeter Datentyp, und manchmal müssen wir Arrays deduplizieren, um unseren Anforderungen gerecht zu werden. Wie entferne ich also doppelte Arrays in PHP?
1. PHP-Array-Deduplizierungsfunktion
PHP bietet zwei Funktionen, die zur Implementierung der Array-Deduplizierung verwendet werden können, nämlich array_unique() und array_diff_key().
array_unique()-Funktion kann doppelte Werte im Array entfernen und ein neues Array zurückgeben.
Beispielcode:
$arr = array("apple", "banana", "cherry", "cherry", "banana"); $arr = array_unique($arr); print_r($arr);
Ausgabeergebnis:
Array ( [0] => apple [1] => banana [2] => cherry )
Es ist ersichtlich, dass die Funktion array_unique() erfolgreich doppelte Elemente im ursprünglichen Array entfernt.
array_diff_key()-Funktion kann zwei Arrays vergleichen und den Schlüsselnamen der Differenz zwischen den beiden Arrays zurückgeben.
Beispielcode:
$array1 = array("a" => "red", "b" => "green", "c" => "blue"); $array2 = array("a" => "red", "b" => "green", "d" => "yellow"); $result = array_diff_key($array1, $array2); print_r($result);
Ausgabeergebnis:
Array ( [c] => blue )
Im Beispiel filtert die Funktion array_diff_key() die Teile von $array1 heraus, die sich von $array2 unterscheiden, und gibt sie als neues Array zurück.
2. Array-Deduplizierung manuell implementieren
Zusätzlich zur Verwendung von PHP-Funktionen können wir die Array-Deduplizierung auch manuell implementieren.
Verwenden Sie die for-Schleife und die if-Anweisung, um das Array zu durchlaufen, doppelte Elemente zu identifizieren und sie zu entfernen.
Beispielcode:
$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9); $new_arr = array(); for ($i = 0; $i < count($arr); $i++) { if (!in_array($arr[$i], $new_arr)) { $new_arr[] = $arr[$i]; } } print_r($new_arr);
Ausgabeergebnis:
Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 6 [4] => 7 [5] => 8 [6] => 9 )
in_array()-Funktion ermittelt, ob die Elemente im ursprünglichen Array bereits im neuen Array vorhanden sind, und wenn nicht, fügt sie dem neuen Array hinzu.
Verwenden Sie die Funktion array_flip(), um das Array umzudrehen, entfernen Sie doppelte Schlüssel-Wert-Paare und verwenden Sie die Funktion array_flip(), um das Array umzudrehen.
Beispielcode:
$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9); $new_arr = array_flip(array_flip($arr)); print_r($new_arr);
Ausgabeergebnis:
Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 6 [4] => 7 [5] => 8 [6] => 9 )
Diese Methode benötigt keine Schleife, verwenden Sie einfach die Funktion array_flip() zweimal.
3. Zusammenfassung
Die oben genannten Methoden zum Entfernen doppelter Arrays können je nach Situation ausgewählt werden. Die Funktionen array_unique() und array_diff_key() sind PHP-eigene Funktionen und weisen eine relativ hohe Effizienz auf. Obwohl die manuelle Implementierung viel Code erfordert, kann sie flexibel an die tatsächliche Situation angepasst und optimiert werden.
Das obige ist der detaillierte Inhalt vonSo entfernen Sie doppelte Arrays in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!