Aktueller Standort: Startseite> Neueste Artikel> Der Unterschied und die Kombination von Array_Diff () und Array_intersect ()

Der Unterschied und die Kombination von Array_Diff () und Array_intersect ()

M66 2025-05-14

In PHP sind Array_Diff () und Array_intersect () zwei sehr häufig vorkommende Array -Betriebsfunktionen, die eine wichtige Rolle bei der Berechnung des Array -Vergleichs und der Differenz -Berechnung spielen. Die Funktionen dieser beiden Funktionen sind unterschiedlich, aber manchmal können sie in Kombination verwendet werden, um die Effizienz des Codes zu verbessern. Dieser Artikel erläutert ihre Detailunterschiede und gibt eine Möglichkeit, sie in Kombination zu verwenden.

1. Array_diff () Funktion

Array_Diff () wird verwendet, um ein Array mit Elementen zurückzugeben, die im ersten Array vorhanden sind, aber nicht in den anderen Arrays enthalten sind. Einfach ausgedrückt, Array_Diff () berechnet die "Differenz -Set" des Arrays.

Grammatik:

 array_diff(array $array1, array $array2, array ...$arrays): array

Beispiel:

 $array1 = [1, 2, 3, 4];
$array2 = [3, 4, 5, 6];
$result = array_diff($array1, $array2);
print_r($result);

Ausgabe:

 Array
(
    [0] => 1
    [1] => 2
)

Im obigen Beispiel gibt Array_Diff () Elemente in Array1 zurück, jedoch nicht in Array2 , d. H. 1 und 2.

2. array_intersect () Funktion

Array_intersect () wird verwendet, um ein Array zurückzugeben, das alle Elemente enthält, die in zwei oder mehr Arrays existieren. Es berechnet die "Schnittpunkt" des Arrays.

Grammatik:

 array_intersect(array $array1, array $array2, array ...$arrays): array

Beispiel:

 $array1 = [1, 2, 3, 4];
$array2 = [3, 4, 5, 6];
$result = array_intersect($array1, $array2);
print_r($result);

Ausgabe:

 Array
(
    [2] => 3
    [3] => 4
)

Im obigen Beispiel gibt Array_intersect () Elemente zurück, die sowohl in Array1 als auch in Array2 existieren, nämlich 3 und 4.

3. Die Differenz zwischen array_diff () und array_intersect ()

Fassen wir die Unterschiede zwischen diesen beiden Funktionen zusammen:

  • Array_diff () : Gibt ein Array mit Elementen zurück, die sich im ersten Array, nicht jedoch in den anderen Arrays befinden. Mit anderen Worten, es berechnet den "Differenzsatz".

  • Array_intersect () : Gibt ein Array zurück, das alle Elemente enthält, die in zwei oder mehr Arrays existieren. Es berechnet "Kreuzung".

Aus dem Ergebnis schließt das von Array_Diff () zurückgegebene Element andere Arrays aus, während Array_intersect () ein gemeinsames Element zurückgibt.

4. Wie kann man Array_Diff () und Array_intersect () verwenden, um die Effizienz zu verbessern?

Manchmal müssen wir gleichzeitig den Unterschied und die Schnittstelle bei der Verarbeitung komplexer Arrays erhalten. Zu diesem Zeitpunkt sollten Sie Array_Diff () und Array_intersect () in Kombination verwenden, um die Effizienz zu verbessern. Wenn wir beispielsweise bestimmte unerwünschte Elemente ausschließen und auch gemeinsame Elemente in Kreuzungen finden müssen, können diese beiden Funktionen in einem Schritt kombiniert werden.

Beispiel:

Angenommen, wir haben zwei Arrays, eine ist die Interessenliste von Benutzer A und die andere ist die Interessenliste von Benutzer B. Wir müssen die Interessen herausfinden, die A hat, aber B nicht (Differenzsatz) und die Interessen, die A und B teilen, herausfinden, dass A und B teilen (Kreuzungssatz).

 $userA = ['music', 'sports', 'travel', 'reading'];
$userB = ['sports', 'travel', 'photography'];

// ErhaltenAHabenBKein Interesse
$diff = array_diff($userA, $userB);
print_r($diff); // Ausgabe: Array ( [0] => music [3] => reading )

// ErhaltenAUndBGemeinsame Interessen
$intersect = array_intersect($userA, $userB);
print_r($intersect); // Ausgabe: Array ( [1] => sports [2] => travel )

Dieser Ansatz hilft uns effektiv, die verschiedenen Teile von zwei Arrays mit denselben Teilen zu trennen und zu vergleichen, was die Komplexität verringert.

5. Anwendung in der URL -Verarbeitung

Manchmal müssen wir die URL -Liste verarbeiten und entsprechende Urteile fällen. array_diff () und array_intersect () können auch in dieser Art von Anwendungsszenario verwendet werden. Nehmen wir beispielsweise an, wir müssen herausfinden, dass einige URLs nicht unter dem angegebenen Domänennamen stehen, oder die Schnittpunkt in der Liste von zwei Domain -Namen herausfinden.

 $urlsA = ['http://example.com', 'http://m66.net/page1', 'http://m66.net/page2'];
$urlsB = ['http://m66.net/page1', 'http://m66.net/page2', 'http://example.com/page3'];

// Erhalten在AIn aber nichtBInternURL
$diffUrls = array_diff($urlsA, $urlsB);
print_r($diffUrls); // Ausgabe: Array ( [0] => http://example.com )

// ErhaltenAUndBGemeinsamURL
$intersectUrls = array_intersect($urlsA, $urlsB);
print_r($intersectUrls); // Ausgabe: Array ( [1] => http://m66.net/page1 [2] => http://m66.net/page2 )

6. Zusammenfassung

  • Array_Diff () und Array_intersect () sind bei der Verarbeitung von Arrays sehr nützliche Funktionen und werden verwendet, um den Differenz und die Schnittstelle zu berechnen.

  • Durch die Verwendung dieser beiden Funktionen in Kombination können wir Array -Daten effizienter verarbeiten, insbesondere wenn wir gleichzeitig unterschiedliche Teile und die gleichen Teile benötigen.

  • In der tatsächlichen Entwicklung, insbesondere im Umgang mit URLs, Benutzerdaten usw., kann die rationale Verwendung dieser beiden Funktionen die Lesbarkeit und Ausführungseffizienz des Codes verbessern.