In PHP ist array_intersect() eine sehr nützliche Array-Funktion, mit der identische Elemente zwischen zwei oder mehr Arrays verglichen und die Array-Schnittmenge dieser Elemente zurückgegeben werden können. In diesem Artikel wird die grundlegende Verwendung der Funktion array_intersect() vorgestellt und einige praktische Tipps gegeben, die PHP-Entwicklern dabei helfen sollen, diese Funktion besser zu nutzen.
1. Funktionssyntax und grundlegende Verwendung
array_intersect() Die Syntax der Funktion lautet wie folgt:
array_intersect ( array $array1 , array $array2 [, array $... ] ) : array
Diese Funktion erfordert mindestens zwei Arrays als Parameter, kann aber mehrere Arrays akzeptieren. Der Rückgabewert der Funktion ist ein neues Array, das die Schnittelemente aller Arrays enthält. Zum Beispiel:
$arr1 = array('apple', 'banana', 'pear'); $arr2 = array('banana', 'orange', 'grape'); $arr3 = array('banana', 'kiwi', 'pear'); $result = array_intersect($arr1, $arr2, $arr3); print_r($result); //输出结果为:array('banana');
In diesem Beispiel definieren wir drei Arrays: $arr1, $arr2 und $arr3, die jeweils einige Fruchtnamen enthalten. Verwenden Sie die Funktion array_intersect($arr1, $arr2, $arr3), um den Schnittpunkt dieser Arrays zu berechnen und das Rückgabeergebnis auszugeben. Es stellt sich heraus, dass das einzige Schnittelement in diesen Arrays „Banane“ ist.
2. Praktische Fähigkeiten
Zusätzlich zur grundlegenden Verwendung verfügt die Funktion array_intersect() auch über einige praktische Fähigkeiten, die im Folgenden einzeln vorgestellt werden.
Wenn wir ein Array haben, in dem sich möglicherweise einige doppelte Elemente befinden, können wir die Funktion array_unique() verwenden, um diese doppelten Elemente zu entfernen. Wenn wir jedoch nur doppelte Elemente behalten und andere Elemente entfernen möchten, können wir die Funktion array_intersect() verwenden. Zum Beispiel:
$arr1 = array('apple', 'banana', 'orange', 'pear', 'banana', 'kiwi'); $arr2 = array_unique($arr1); //去除重复元素 $result = array_intersect($arr1, $arr2); //返回重复元素 print_r($result); //输出结果为:array('banana');
In diesem Beispiel definieren wir ein Array $arr1, das doppelte Elemente enthält, verwenden zuerst die Funktion array_unique(), um diese doppelten Elemente zu entfernen, und verwenden dann die Funktion array_intersect(), um den Schnittpunkt von $arr1 und $ zu berechnen arr2. Das Ergebnis enthält nur das wiederholte Element „Banane“ im Array.
Die Funktion array_intersect() kann mehrere Arrays als Parameter akzeptieren, was uns den Vergleich der Schnittmenge mehrerer Arrays erleichtert. Beispielsweise können wir array_intersect($arr1, $arr2, $arr3) verwenden, um den Schnittpunkt zwischen drei Arrays zu berechnen. Was aber, wenn wir mehrere Arrays vergleichen müssen? Dies kann mit einer for-Schleife erreicht werden, wie unten gezeigt:
$arr1 = array('apple', 'banana', 'pear'); $arr2 = array('banana', 'orange', 'grape'); $arr3 = array('banana', 'kiwi', 'pear'); $arr4 = array('banana', 'cherry', 'pear'); $cnt = count(func_get_args()); //获取参数个数 for ($i = 1; $i < $cnt; $i++) { ${"arr" . $i} = array_intersect(${"arr" . ($i-1)}, ${"arr" . $i}); //比较数组交集 } print_r($arr1); //输出结果为:array('banana');
In diesem Beispiel definieren wir 4 Arrays: $arr1, $arr2, $arr3 und $arr4, die jeweils einige Fruchtnamen enthalten. Mithilfe einer for-Schleife vergleichen wir die Schnittmenge dieser Arrays und speichern die Ergebnisse im selben Array. Schließlich drucken wir das Array mit den Schnittelementen aus, und das Ergebnis enthält nur „Banane“. Dieses Beispiel veranschaulicht den Nutzen der Funktion array_intersect() beim Vergleich mehrerer Arrays.
Standardmäßig behält die Funktion array_intersect() die Schlüsselnamen des ursprünglichen Arrays bei. Wenn wir jedoch das Zurücksetzen des Schlüsselnamens erzwingen möchten, können wir die Funktion array_values() verwenden. Zum Beispiel:
$arr1 = array('name' => 'Tom', 'age' => 32); $arr2 = array('name' => 'Jerry', 'age' => 25); $arr3 = array_intersect($arr1, $arr2); print_r($arr3); //输出结果为:array('name' => 'Jerry', 'age' => 25); $arr4 = array_values(array_intersect($arr1, $arr2)); print_r($arr4); //输出结果为:array('Jerry', 25);
In diesem Beispiel definieren wir zwei assoziative Arrays $arr1 und $arr2, die einige grundlegende Informationen enthalten. Verwenden Sie die Funktion array_intersect(), um die Schnittmenge der beiden Arrays zu vergleichen und die ursprünglichen Schlüsselnamen beizubehalten, und verwenden Sie dann erneut die Funktion print_r(), um das Ergebnis zu drucken. Die Ausgabe enthält nun die ursprünglichen Schlüsselnamen „name“ und „age“. Als nächstes verwenden wir die Funktion array_values(), um die ursprünglichen Schlüssel zu entfernen, so dass nur die Schnittelemente übrig bleiben, und drucken das Ergebnis aus. Zu diesem Zeitpunkt enthält das Ausgabeergebnis nur die Schnittelemente „Jerry“ und „25“, was darauf hinweist, dass die Funktion array_values() die ursprünglichen Schlüsselnamen entfernt hat.
$arr1 = array( array('name' => 'Tom', 'age' => 32), array('name' => 'Jerry', 'age' => 25), array('name' => 'Mickey', 'age' => 28) ); $arr2 = array( array('name' => 'Jerry', 'age' => 25), array('name' => 'Mickey', 'age' => 28), array('name' => 'Donald', 'age' => 30) ); $arr3 = array( array('name' => 'Tom', 'age' => 32), array('name' => 'Jerry', 'age' => 25), array('name' => 'Mickey', 'age' => 28) ); $arr4 = array_intersect($arr1[0], $arr2[0], $arr3[0]); print_r($arr4); //输出结果为:array('name' => 'Jerry', 'age' => 25);
Das obige ist der detaillierte Inhalt vonPraktische Tipps für PHP-Funktionen: array_intersect(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!