Im vorherigen Artikel „Lernen Sie drei Methoden zum Erhalten der Schnittmenge mehrerer Arrays in fünf Minuten (Sammlung)“ haben wir ausführlich vorgestellt, wie Sie die Schnittmenge mehrerer Arrays in PHP-Array-Operationen erhalten Schauen Sie sich an, wie Sie die Differenzmenge mehrerer Arrays in Array-Operationen erhalten. Hoffe, es hilft allen!
Im vorherigen Artikel haben wir gelernt, dass wir die Funktion array_intersect
, die Funktion array_intersect_key
und array_intersect_assoc verwendet verschiedene Methoden, um die Schnittmenge zwischen Arrays zu ermitteln. Da es in PHP eine Methode zum Ermitteln der Schnittmenge zwischen Arrays gibt, gibt es auch eine Methode zum Ermitteln der Differenz zwischen PHP-Arrays. array_intersect
函数、array_intersect_key
函数和array_intersect_assoc
函数分别以不同的方法来获取数组之间的交集。既然在PHP中有能够获取数组间交集的方法那同时也会有获取PHP数组间差集的方法。
获取数组间差集的方法有很多,与获取交集类似,我们也可以通过比较键值、比较键名和比较键值与键名的方法来比较数组,然后获取数组间的差集。下面我们就分别来看一下这三种方法的使用吧。
比较键值-<span style="font-size: 20px;">array_diff</span>
函数
在PHP中内置了array_diff
函数用来通过比较键值的方式来比较数组,然后返回数组间的差集。array_diff
函数的基本语法格式如下:
array_diff(array1,array2,array3...);
其中需要注意的是,参数array123表示的是用来比较的数组,返回的结果差集数组,该数组中的元素包括在了第一个数组元素中。返回数组是第一个数组中其他数组没有的值,在返回的数组中键名保持不变。
下面我们通过示例来看一下array_diff
函数的使用,示例如下:
<?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); ?>
输出结果:
通过上述示例我们通过array_diff
函数,返回的结果正是数组1与其他数组的差集。也就是返回的结果正是数组1中有但是其他数组中没有的元素。当然了这是比较元素的键值,下面我们来看一下通过比较元素的键名,返回的结果有什么不同。
比较键名-array_diff_key
函数
在PHP中可以通过array_intersect_key
函数来比较数组间的键名然后返回数组间的交集,与之类似的就是array_diff_key
函数能够比较键名然后返回数组间的差集。
array_diff_key
函数的基本语法格式如下:
array_diff_key(array1,array2,array3...);
其中需要注意的是:参数array123表示的需要比较的数组,返回的差集数组中的元素都是数组1中的元素,但是并不在其他的数组元素中。
接下来我们通过示例来看一下array_diff_key
函数的应用,示例如下:
<?php $fruit1 = array("a"=>"Apple","b"=>"Banana","c"=>"Orange"); $fruit2 = array("a"=>"Pear","d"=>"Apple","e"=>"Grape"); $fruit3 = array("a"=>"Watermelon","f"=>"Orange","g"=>"Apple"); $intersection = array_diff_key($fruit1, $fruit2, $fruit3); print_r($intersection); ?>
输出结果:
通过上述示例我们就是通过array_diff_key
函数来进行比较数组间的键名,然后返回差集,返回的结果正是数组1中有的键名但是其他的数组元素中没有的键名。这是通过比较键名,下面我们来看一下同时比较键值和键名应该怎样操作。
比较键值与键名-array_diff_assoc
函数
在PHP中可以通过array_intersect_assoc
函数比较键值与键名,然后返回的结果是数组元素中的交集,与之类似的就是array_diff_assoc
函数它也是比较键值与键名,但是返回的结果是数组元素中的差集。
array_diff_assoc
函数的基本语法格式如下:
array_diff_assoc(array1,array2,array3...);
其中需要注意的是:参数array123表示的需要比较的数组,通过比较键值与键名,返回的差集数组中的元素都是数组1中的元素,但是并不在其他的数组元素中。
下面我们通过示例来看一下array_diff_assoc
函数的应用,示例如下:
<?php $fruit1 = array("a"=>"Apple","b"=>"Banana","c"=>"Orange"); $fruit2 = array("a"=>"Pear","d"=>"Apple","e"=>"Grape"); $fruit3 = array("a"=>"Watermelon","f"=>"Orange","g"=>"Apple"); $intersection = array_diff_assoc($fruit1, $fruit2, $fruit3); print_r($intersection); ?>
输出结果:
通过上述示例我们通过array_diff_assoc
Schlüsselwerte vergleichen-<span style="font-size: 20px;">array_diff</span>
Funktion
array_diff
ist in PHP integriert, um Arrays durch den Vergleich von Schlüsselwerten zu vergleichen gibt die Differenz zwischen den Arrays zurück. Das grundlegende Syntaxformat der Funktion array_diff
lautet wie folgt: 🎜rrreee🎜Es ist zu beachten, dass der Parameter array123 das für den Vergleich verwendete Array darstellt und das zurückgegebene Ergebnis-Differenz-Array die Elemente in diesem Array sind im ersten Array-Element enthalten. Das zurückgegebene Array ist der Wert im ersten Array, der in anderen Arrays nicht gefunden wird, und die Schlüsselnamen im zurückgegebenen Array bleiben unverändert. array_diff
anhand eines Beispiels an. Das Beispiel sieht wie folgt aus:array_diff
übergeben, ist das zurückgegebene Ergebnis die Differenz zwischen Array 1 und anderen Arrays. Das heißt, das zurückgegebene Ergebnis sind genau die Elemente, die sich in Array 1, aber nicht in anderen Arrays befinden. Dies ist natürlich ein Vergleich der Schlüsselwerte von Elementen. Schauen wir uns den Unterschied in den Ergebnissen an, die durch den Vergleich der Schlüsselnamen von Elementen zurückgegeben werden. 🎜🎜Compare key name-array_diff_key
function🎜🎜In PHP können Sie übergeben array_intersect_key Die Funktion
vergleicht die Schlüsselnamen zwischen Arrays und gibt die Schnittmenge zwischen den Arrays zurück. Ebenso vergleicht die Funktion array_diff_key
die Schlüsselnamen und gibt die Differenz zwischen den Arrays zurück. Das grundlegende Syntaxformat der Funktion 🎜🎜array_diff_key
lautet wie folgt: 🎜rrreee🎜Es ist zu beachten, dass der Parameter array123 das Array darstellt, das verglichen werden muss, und die Elemente im zurückgegebenen Differenzarray sind alle Elemente in Array 1 , jedoch nicht in anderen Array-Elementen. array_diff_key
anhand eines Beispiels an:array_diff_key
, die die Schlüsselnamen zwischen Arrays vergleicht und dann den Differenzsatz zurückgibt. Das zurückgegebene Ergebnis ist genau der Schlüsselname in Array 1, jedoch nicht in anderen Array-Elementen. Dies geschieht durch den Vergleich von Schlüsselnamen. Schauen wir uns an, wie Schlüsselwerte und Schlüsselnamen gleichzeitig verglichen werden. 🎜🎜Vergleiche Schlüsselwert und Schlüsselname-array_diff_assoc
-Funktion🎜🎜 kann in PHP übergeben werden array_intersect_assoc vergleicht den Schlüsselwert und den Schlüsselnamen und gibt dann als Ergebnis die Schnittmenge der Array-Elemente zurück. Ähnlich wie die Funktion array_diff_assoc
vergleicht sie auch den Schlüssel Wert und der Schlüsselname, aber das zurückgegebene Ergebnis ist die Differenz zwischen den Array-Elementen. Das grundlegende Syntaxformat der Funktion 🎜🎜array_diff_assoc
lautet wie folgt: 🎜rrreee🎜Es ist zu beachten, dass der Parameter array123 das Array darstellt, das durch Vergleich des Schlüsselwerts und des Schlüsselnamens verglichen werden muss , das zurückgegebene Differenz-Array. Die Elemente sind alle Elemente in Array 1, aber nicht in anderen Array-Elementen. array_diff_assoc
anhand eines Beispiels an. Das Beispiel sieht wie folgt aus: 🎜rrreee🎜Ausgabeergebnis:Das obige ist der detaillierte Inhalt vonLernen Sie drei Methoden kennen, um die Differenzmengen mehrerer Arrays zu erhalten (Sammlung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!