Heim  >  Artikel  >  Backend-Entwicklung  >  Praktische Tipps für PHP-Funktionen: array_intersect()

Praktische Tipps für PHP-Funktionen: array_intersect()

PHPz
PHPzOriginal
2023-06-20 08:33:183779Durchsuche

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.

  1. Doppelte Elemente entfernen

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.

  1. Vergleichen Sie die Schnittmenge mehrerer Arrays

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.

  1. Behalten Sie die ursprünglichen Array-Schlüsselnamen bei

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.

  1. Vergleichen Sie die Schnittmenge mehrdimensionaler Arrays. Die Funktion array_intersect() eignet sich auch zum Vergleich mehrdimensionaler Arrays. Beispielsweise können wir array_intersect($arr1, $arr2, $arr3) verwenden, um die Schnittmenge mehrerer eindimensionaler Arrays zu vergleichen, oder wir können array_intersect($arr1[0], $arr2[0], $arr3[0] verwenden ]) zum Vergleichen Vergleicht die Schnittmenge mehrdimensionaler Arrays. Zum Beispiel:
  2. $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);
In diesem Beispiel definieren wir 4 mehrdimensionale Arrays: $arr1, $arr2, $arr3 und $arr4. Verwenden Sie die Funktion array_intersect(), um die Schnittmenge dieser Arrays zu vergleichen. Das Ergebnis enthält nur Informationen über „Jerry“. Dieses Beispiel zeigt, dass die Funktion array_intersect() zum Vergleich mehrdimensionaler Arrays geeignet ist und die Syntax sehr einfach ist.

3. Zusammenfassung: Die Funktion array_intersect() ist in der PHP-Entwicklung sehr praktisch. Sie kann problemlos die Schnittpunkte zwischen mehreren Arrays vergleichen und wiederholte Elemente zurückgeben. In diesem Artikel werden die grundlegende Verwendung dieser Funktion und einige praktische Fertigkeiten vorgestellt, darunter das Entfernen doppelter Elemente, das Vergleichen der Schnittmenge mehrerer Arrays, das Beibehalten der ursprünglichen Array-Schlüsselnamen und das Vergleichen der Schnittmenge mehrdimensionaler Arrays. Diese Techniken können PHP-Entwicklern helfen, die Funktion array_intersect() besser zu nutzen und die Entwicklungseffizienz und Codequalität zu verbessern.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn