In PHP ist es oft notwendig, Vergleichsoperationen an Arrays durchzuführen, insbesondere um die Unterschiede zwischen zwei Arrays zu analysieren und zu vergleichen. In diesem Artikel erfahren Sie, wie Sie mit PHP zwei Arrays vergleichen und ihre unterschiedlichen Werte ermitteln.
1. Initialisierung von zwei Arrays
Angenommen, die beiden Arrays $arr1 und $arr2 müssen verglichen werden. Wir initialisieren zunächst mit der folgenden Methode:
$arr1 = array("a", "b", "c", "d"); $arr2 = array("b", "d", "f", "g");
2. Vergleichsmethode zweier Arrays
array_diff()
, die die Werte im ersten Array finden kann, die sich vom Rest der Arrays unterscheiden. Wir können die beiden Arrays vergleichen, nämlich:
$diff1 = array_diff($arr1, $arr2); $diff2 = array_diff($arr2, $arr1);
array_diff()
可以找出第一个数组中不同于其余数组的值。我们可以通过对两个数组进行比对,即:$diff1 = ['a', 'c']; $diff2 = ['f', 'g'];
其中 $diff1
表示 $arr1 中不同于 $arr2 的值, $diff2
表示 $arr2 中不同于 $arr1 的值。输出以上两个数组的结果如下:
$merge_arr = array_merge($arr1, $arr2); $unique_arr = array_unique($merge_arr); $diff_arr = array_diff($unique_arr, array_intersect($arr1, $arr2));
另外,我们可以使用 array_merge()
函数将两个数组合并,再使用 array_unique()
函数去重,去掉重复项,就得到了两个数组的不同值。具体实现方式如下:
$flip_arr2 = array_flip($arr2); $diff1 = array_diff_assoc($arr1, $flip_arr2); $diff2 = array_diff_assoc($arr2, array_flip($arr1));
上述代码中, array_intersect($arr1, $arr2)
表示 $arr1 和 $arr2 的交集, array_diff()
函数用来找出 $unique_arr 中只出现了一次的元素。 最终 $diff_arr
即为两个数组之间的不同值。
三、两数组比较的优化
当要比较的数组长度很大时,上述方法可能会影响程序的效率。为了优化比较速度,我们可以使用 array_flip()
函数把其中一个数组进行翻转,使其中的键值对反过来,然后再进行比较。具体实现方法如下:
echo 'arr1 与 arr2 的差异为: '.implode(',', $diff1).'<br>'; echo 'arr2 与 arr1 的差异为: '.implode(',', $diff2).'<br>'; echo '两个数组不同值为: '.implode(',',$diff_arr).'<br>';
其中, array_diff_assoc()
wobei $diff1
den Wert in $arr1 darstellt, der sich von $arr2 unterscheidet, $diff2 code> stellt einen Wert in $arr2 dar, der sich von $arr1 unterscheidet. Das Ergebnis der Ausgabe der beiden oben genannten Arrays lautet wie folgt:
arr1 与 arr2 的差异为: a,c arr2 与 arr1 的差异为: f,g 两个数组不同值为: a,c,f,g
array_merge()
Darüber hinaus können wir verwenden Die Funktionarray_merge ()
führt die beiden Arrays zusammen und verwendet dann die Funktion array_unique()
, um Duplikate zu entfernen und die unterschiedlichen Werte der beiden Arrays abzurufen. Die spezifische Implementierung ist wie folgt: rrreee
Im obigen Code stelltarray_intersect($arr1, $arr2)
den Schnittpunkt von $arr1 und $arr2 dar, array_diff () code>-Funktion wird verwendet, um Elemente zu finden, die nur einmal in $unique_arr vorkommen. Letztendlich ist <code>$diff_arr
der Unterschied zwischen den beiden Arrays. 3. Optimierung des Vergleichs zweier ArraysWenn die Länge des zu vergleichenden Arrays sehr groß ist, kann die obige Methode die Effizienz des Programms beeinträchtigen. Um die Vergleichsgeschwindigkeit zu optimieren, können wir die Funktion array_flip()
verwenden, um eines der Arrays umzudrehen, sodass die Schlüssel-Wert-Paare umgekehrt sind, und dann vergleichen. Die spezifische Implementierungsmethode lautet wie folgt: #🎜🎜#rrreee#🎜🎜# Unter anderem wird die Funktion array_diff_assoc()
verwendet, um zu vergleichen, ob die Schlüssel und Werte in den beiden Arrays gleich sind . #🎜🎜##🎜🎜# 4. Ergebnisausgabe #🎜🎜##🎜🎜#Schließlich können wir das Ergebnis über den folgenden Code ausgeben: #🎜🎜#rrreee#🎜🎜#Das Ausgabeergebnis des obigen Codes lautet wie folgt folgt: #🎜🎜 #rrreee#🎜🎜#Zusammenfassung: #🎜🎜##🎜🎜#Dieser Artikel stellt die Methode zum Vergleichen zweier Arrays in PHP vor und optimiert sie für Situationen, in denen die Array-Länge sehr groß ist. Ich hoffe, dass es PHP-Anfängern und Lesern, die mit Array-Vergleichsoperationen nicht vertraut sind, hilfreich sein wird. #🎜🎜#
Das obige ist der detaillierte Inhalt vonSo vergleichen Sie zwei Arrays, um in PHP unterschiedliche Werte zu finden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!