Heim > Artikel > Backend-Entwicklung > So finden Sie die Schnittmenge von Arrays in PHP
Array ist eine in der PHP-Programmierung weit verbreitete Datenstruktur. Schnittoperationen sind eine häufige Voraussetzung für die Arbeit mit Arrays. In PHP können wir verschiedene Methoden verwenden, um den Schnittpunkt von zwei oder mehr Arrays zu ermitteln. In diesem Artikel wird dieses Thema ausführlich besprochen und vorgestellt.
Die erste Methode besteht darin, die Funktion array_intersect zu verwenden, um den Schnittpunkt zweier Arrays zu ermitteln. Diese Funktion verwendet zwei oder mehr Arrays als Argumente und gibt die Schnittmenge der Elemente in diesen Arrays zurück. Hier ist ein Beispielcode, der die Funktion array_intersect verwendet:
$firstArray = array("apple", "orange", "banana", "pear"); $secondArray = array("pear", "watermelon", "grape", "banana"); $result = array_intersect($firstArray, $secondArray); print_r($result);
Der obige Code gibt ein Array zurück, das „Banane“ und „Birne“ enthält. Weil beide Elemente sowohl in $firstArray als auch in $secondArray vorhanden sind.
Die zweite Methode besteht darin, die integrierte Funktion array_values zu verwenden, um die Werte im Schnittpunktarray zu entpacken. Der zerlegte Wert ist immer noch ein Array, das nur die Werte des Schnittpunktteils enthält. Hier ist ein Beispielcode, der die Funktion array_values verwendet:
$firstArray = array("apple", "orange", "banana", "pear"); $secondArray = array("pear", "watermelon", "grape", "banana"); $result = array_intersect($firstArray, $secondArray); $result = array_values($result); print_r($result);
Nach der Ausführung wird ein neues Array mit den Schnittelementen zurückgegeben, nämlich: „Banane“ und „Birne“.
Die dritte Methode besteht darin, eine foreach-Schleifenanweisung zu verwenden, um das erste Array zu durchlaufen und zu prüfen, ob seine Elemente auch im zweiten Array vorhanden sind. Wenn das Element im zweiten Array vorhanden ist, wird es dem Schnittpunkt-Array hinzugefügt. Hier ist ein Beispielcode, der eine foreach-Schleifenanweisung verwendet:
$firstArray = array("apple", "orange", "banana", "pear"); $secondArray = array("pear", "watermelon", "grape", "banana"); $result = array(); foreach ($firstArray as $value) { if (in_array($value, $secondArray)) { $result[] = $value; } } print_r($result);
Nach der Ausführung dieses Codes wird ein neues Array zurückgegeben, das die Schnittelemente enthält.
Die vierte Methode besteht darin, die Funktion array_filter zu verwenden, um den Schnittpunkt zweier Arrays zu filtern. Diese Funktion akzeptiert zwei Parameter, der erste Parameter ist das zu filternde Array und der zweite Parameter ist eine Rückruffunktion. Die Rückruffunktion wird zum Filtern des Arrays verwendet und nur Elemente, die die Bedingungen erfüllen, werden beibehalten. Ein Beispielcode, der die Funktion array_filter verwendet, lautet wie folgt:
$firstArray = array("apple", "orange", "banana", "pear"); $secondArray = array("pear", "watermelon", "grape", "banana"); $result = array_filter($firstArray, function($item) use ($secondArray) { return in_array($item, $secondArray); }); print_r($result);
Nach der Ausführung dieses Codes wird ein neues Array zurückgegeben, das die Schnittelemente enthält.
Zusammenfassend lässt sich sagen, dass es viele verschiedene Methoden gibt, um den Schnittpunkt zweier Arrays zu ermitteln. Der einfachste Weg besteht darin, die Funktion array_intersect zu verwenden und dann die Funktion array_values für das zurückgegebene Array zu verwenden, um die Schnittpunkte aufzuteilen. Grundlegende Schnittoperationen können auch mit der foreach-Schleifenanweisung und der in_array-Funktion implementiert werden. Schließlich bietet die Funktion array_filter eine erweiterte Methode, mit der Rückruffunktionen zum Implementieren von Schnittoperationen verwendet und die Schnittberechnungsregeln flexibler angepasst werden können.
Das obige ist der detaillierte Inhalt vonSo finden Sie die Schnittmenge von Arrays in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!