Heim > Backend-Entwicklung > PHP-Problem > So vergleichen Sie zwei Arrays, um in PHP unterschiedliche Werte zu finden

So vergleichen Sie zwei Arrays, um in PHP unterschiedliche Werte zu finden

PHPz
Freigeben: 2023-04-19 10:19:28
Original
1367 Leute haben es durchsucht

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");
Nach dem Login kopieren

2. Vergleichsmethode zweier Arrays

  1. array_diff()
#🎜 🎜 #PHP verfügt über die Funktion 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);
Nach dem Login kopieren
array_diff() 可以找出第一个数组中不同于其余数组的值。我们可以通过对两个数组进行比对,即:
$diff1 = ['a', 'c'];
$diff2 = ['f', 'g'];
Nach dem Login kopieren

其中 $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));
Nach dem Login kopieren
  1. array_merge()

另外,我们可以使用 array_merge() 函数将两个数组合并,再使用 array_unique() 函数去重,去掉重复项,就得到了两个数组的不同值。具体实现方式如下:

$flip_arr2 = array_flip($arr2);
$diff1 = array_diff_assoc($arr1, $flip_arr2);
$diff2 = array_diff_assoc($arr2, array_flip($arr1));
Nach dem Login kopieren

上述代码中, 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>';
Nach dem Login kopieren

其中, 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
Nach dem Login kopieren

    array_merge()

    Darüber hinaus können wir verwenden Die Funktion array_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 stellt array_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 Arrays

    Wenn 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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage