Bei Array-Operationen kann es manchmal vorkommen, dass dieselben Elemente aus zwei Arrays entfernt werden. Es gibt mehrere Möglichkeiten, dies in PHP zu erreichen. Im Folgenden werden drei verschiedene Methoden beschrieben.
Methode 1: Verwenden Sie die Array-Funktion array_diff()
PHPs Funktion array_diff() kann verwendet werden, um die Differenz zwischen zwei oder mehr Arrays zu berechnen, das heißt, sie gibt ein neues Array zurück, dessen Werte im ersten Array erscheinen, aber Elemente, die in anderen Arrays nicht vorkommen. Daher können wir array_diff() verwenden, um die Elemente in zwei Arrays zu finden, die unterschiedlich sind, also das Komplement derselben Elemente.
Beispielcode:
$array1 = [1, 2, 3, 4, 5]; $array2 = [3, 5, 7, 9, 11]; $result = array_merge(array_diff($array1, $array2), array_diff($array2, $array1)); print_r($result);
Ausgabeergebnis:
Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 7 [4] => 9 [5] => 11 )
Der obige Code verwendet zunächst die Funktion array_diff(), um das Komplement der beiden Eingabearrays zu finden, und führt sie dann zu einem neuen Array zusammen, d. h. mit allen verschiedenen Elementen .
Methode 2: Schleifendurchquerung verwenden
Wir können Schleifendurchquerung auch verwenden, um dieselben Elemente in den beiden Arrays zu löschen. Um diese Methode zu implementieren, müssen wir zunächst ein Array durchlaufen, dann dasselbe Element in einem anderen Array finden und es aus dem Array löschen.
Beispielcode:
$array1 = [1, 2, 3, 4, 5]; $array2 = [3, 5, 7, 9, 11]; foreach ($array1 as $key => $value) { if (in_array($value, $array2)) { unset($array1[$key]); unset($array2[array_search($value, $array2)]); } } $result = array_merge($array1, $array2); print_r($result);
Ausgabeergebnis:
Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 7 [4] => 9 [5] => 11 )
Der obige Code durchläuft zunächst die Elemente in $array1, findet dann dieselben Elemente in $array2 und entfernt sie. Zum Schluss führen Sie die beiden Arrays zu einem neuen Array zusammen.
Methode 3: Verwenden Sie die Array-Funktion array_intersect()
Eine andere Methode besteht darin, die Funktion array_intersect() von PHP zu verwenden, die den Schnittpunkt von zwei oder mehr Arrays zurückgibt, d. h. die in allen Eingabearrays enthaltenen Elemente. Ähnlich wie die erste Methode oben findet auch diese Methode dieselben Elemente in den beiden Arrays und kombiniert sie dann zu einem neuen Array.
Beispielcode:
$array1 = [1, 2, 3, 4, 5]; $array2 = [3, 5, 7, 9, 11]; $result = array_intersect($array1, $array2); print_r($result);
Ausgabeergebnis:
Array ( [2] => 3 [4] => 5 )
Der obige Code verwendet direkt die Funktion array_intersect(), um die gleichen Elemente in $array1 und $array2, also 3 und 5, zu finden.
Unter diesen Methoden ist der Code mit array_diff() der prägnanteste und effizienteste, da er alle Aufgaben auf einmal erledigen kann. Obwohl die Methode der Schleifendurchquerung einfach und leicht zu verstehen ist, ist sie etwas kompliziert und kann auch zeitaufwändig sein. Schließlich gibt es noch etwas zu beachten, wenn Sie die Methode array_intersect() verwenden, da sie nur die gleichen Elemente zurückgibt, nicht den Unterschied zwischen zwei Arrays und daher nicht für alle Fälle geeignet ist.
Das obige ist der detaillierte Inhalt vonSo entfernen Sie identische Werte aus zwei Arrays in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!