Bei der PHP-Programmierung tritt häufig das Problem auf, die Schnittmenge zweier Arrays zu löschen, insbesondere wenn die Schnittmenge mehrerer Arrays verarbeitet werden muss. In diesem Artikel erfahren Sie eine einfache und praktische Methode zum Löschen der Schnittmenge zwischen zwei Arrays.
1. Problembeschreibung
Angenommen, es gibt zwei Arrays $A bzw. $B:
$A = array(1,2,3,4,5,6);
$B = array(4 , 5,7,8,9,10);
Die Anforderung besteht darin, nur alle Elemente von $A und $B beizubehalten, jedoch nicht die Schnittmenge der beiden Arrays einzuschließen, d. h. das Ergebnisarray sollte sein:
$ Ergebnis = array( 1,2,3,6,7,8,9,10);
Wie erreicht man das? Im Folgenden werden Sie einzeln vorgestellt.
2. Methode 1
Zuerst können wir die Funktion array_diff in PHP verwenden, um die Differenzoperation von Array-Elementen zu implementieren:
$Result = array_merge(array_diff($A, $B), array_diff ($B , $A));
Im obigen Code bedeutet array_diff($A, $B), Elemente herauszufiltern, die sich im Array $A, aber nicht im Array $B befinden; array_diff($B, $ A) bedeutet, Elemente im Array $B, aber nicht im Array $A herauszufiltern. Verwenden Sie dann die Funktion array_merge, um die beiden Ergebnisarrays zu kombinieren. Diese Methode scheint einfach zu sein, ist aber in Wirklichkeit nicht robust, wie die folgenden Punkte zeigen:
Um diese Probleme besser zu vermeiden, müssen wir eine robustere Methode verwenden, um die Schnittmenge von Array-Elementen zu löschen.
3. Methode 2
Als nächstes können wir jedes Element im Array durchlaufen und dabei Deduplizierungs- und Filtervorgänge durchführen. Der Code lautet wie folgt:
$Result = array();
foreach($A as $value){
if(!in_array($value, $B)){ $Result[] = $value; }
}
foreach($B as $value){
if(!in_array($value, $Result)){ $Result[] = $value; }
}
Oben Code: Wir definieren zunächst ein leeres Array $Result, das das endgültige Ergebnisarray darstellt. Verwenden Sie dann zwei foreach-Schleifen, um jedes Element in $A und $B zu durchlaufen. Verwenden Sie während des Vorgangs die Funktion in_array, um zu bestimmen, ob das aktuelle Element in einem anderen Array erscheint, beispielsweise ob es in $B erscheint. Wenn es vorher nicht erscheint, wird es zu $Result hinzugefügt. Das letzte $Result-Array ist die Vereinigung aller Elemente in den beiden Arrays.
Die Verwendung dieser Methode hat die folgenden Vorteile:
4. Zusammenfassung
In PHP werden in diesem Artikel zwei Möglichkeiten zum Umgang mit Array-Schnittpunktproblemen vorgestellt: die Verwendung der array_diff-Funktion und die Schleifendurchlauffilterung. Obwohl beide Methoden korrekte Ergebnisse liefern können, ist die Methode der Schleifendurchquerung robuster und kann mehr Randfälle verarbeiten, was es wert ist, erlernt zu werden.
Das obige ist der detaillierte Inhalt vonSo löschen Sie den Schnittpunkt zweier Arrays in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!