Heim  >  Artikel  >  Backend-Entwicklung  >  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
PHPzOriginal
2023-04-19 10:09:371319Durchsuche

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

  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);
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));
  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));

上述代码中, 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 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!

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