Heim >Backend-Entwicklung >PHP-Problem >Was ist die Methode, um die Schnittmenge und Differenz von Arrays in PHP zu ermitteln?

Was ist die Methode, um die Schnittmenge und Differenz von Arrays in PHP zu ermitteln?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-08-28 16:09:422299Durchsuche

Was ist die Methode, um die Schnittmenge und Differenz von Arrays in PHP zu ermitteln?

1. Schnittmenge von Arrays array_intersect()

Die Funktion array_intersect() gibt ein Array mit beibehaltenen Schlüsseln zurück, Dieses Array besteht nur aus Werten, die im ersten Array erscheinen und in jedem anderen Eingabearray erscheinen. Seine Form ist wie folgt:

array array_intersect(array array1,array array2[,arrayN…])

Das folgende Beispiel gibt alle Früchte zurück, die im Array $fruit1 erscheinen und auch in $fruit2 und $fruit3 erscheinen:

<?php
$fruit1 = array("Apple","Banana","Orange");
$fruit2 = array("Pear","Apple","Grape");
$fruit3 = array("Watermelon","Orange","Apple");
$intersection = array_intersect($fruit1, $fruit2, $fruit3);
print_r($intersection);
// output
// Array ( [0] => Apple )
?>

Nur ​​in den beiden Elementen Nur wenn sie gleich sind und denselben Datentyp haben, betrachtet die Funktion array_intersect() sie als gleich.

Verwandte Empfehlungen: "PHP-Tutorial"

Schnittpunkt assoziativer Arrays array_intersect_assoc()

Funktion array_intersect_assoc() und array_intersect () ist im Grunde das Gleiche, außer dass beim Vergleich auch die Schlüssel des Arrays berücksichtigt werden. Daher werden im Ergebnisarray nur Schlüssel/Wert-Paare zurückgegeben, die im ersten Array und auch in allen anderen Eingabearrays erscheinen.

hat die folgende Form:

array array_intersect_assoc(array array1,array array2[,arrayN…])

Das folgende Beispiel gibt alle Schlüssel/Wert-Paare zurück, die im Array $fruit1 und auch in $fruit2 und $fruit3 erscheinen:

<?php
$fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");
$fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");
$fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");
$intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);
print_r($intersection);
// output
// Array ( [red] => Apple )
?>

2. Array-Differenz array_diff()

Die Funktion array_diff() gibt Werte zurück, die im ersten Array erscheinen, aber nicht in anderen Eingabearrays sind. Diese Funktion ist das Gegenteil von array_intersect().

array array_diff(array array1,array array2[,arrayN…])

Beispiele sind wie folgt:

<?php
$fruit1 = array("Apple","Banana","Orange");
$fruit2 = array("Pear","Apple","Grape");
$fruit3 = array("Watermelon","Orange","Apple");
$intersection = array_diff($fruit1, $fruit2, $fruit3);
print_r($intersection);
// output
// Array ( [1] => Banana )
?>

Assoziative Array-Differenzmenge array_diff_assoc()

Die Funktion array_diff_assoc() ist im Grunde die gleiche wie array_diff( ), außer dass es beim Vergleich auch die Schlüssel des Arrays berücksichtigt. Daher werden im Ergebnisarray nur Schlüssel/Wert-Paare zurückgegeben, die im ersten Array, aber nicht in den anderen Eingabearrays vorkommen. Seine Form ist wie folgt:

array array_diff_assoc(array array1,array array2[,arrayN…])

Das folgende Beispiel gibt nur [gelb] => Banana zurück, da dieses spezielle Schlüssel/Wert-Paar in $fruit1 vorkommt, aber nicht in $fruit2 und $fruit3 existiert.

<?php
$fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");
$fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");
$fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");
$intersection = array_diff_assoc($fruit1, $fruit2, $fruit3);
print_r($intersection);
// output
// Array ( [yellow] => Banana )
?>

Das obige ist der detaillierte Inhalt vonWas ist die Methode, um die Schnittmenge und Differenz von Arrays in PHP zu ermitteln?. 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