Heim > Backend-Entwicklung > PHP-Problem > So finden Sie in PHP unterschiedliche Werte in zwei Arrays

So finden Sie in PHP unterschiedliche Werte in zwei Arrays

WBOY
Freigeben: 2023-05-23 11:57:37
Original
1044 Leute haben es durchsucht

PHP ist eine weit verbreitete Programmiersprache und muss bei der Verarbeitung von Arrays häufig unterschiedliche Werte zwischen zwei Arrays vergleichen. In diesem Artikel werden einige PHP-Methoden vorgestellt, um die unterschiedlichen Werte zweier Arrays herauszufinden.

Methode 1: Verwenden Sie die Funktion array_diff(). Die Funktion array_diff() ist sehr nützlich, wenn Sie verschiedene Werte zwischen zwei Arrays vergleichen. Sie wird wie folgt verwendet:

<?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry", "d" => "date");
$array2 = array("a" => "apple", "b" => "banana", "g" => "grape");

$result = array_diff($array1, $array2);

print_r($result);
?>
Nach dem Login kopieren

Im obigen Code definieren wir zwei Arrays $array1 und $ array2, finden Sie den Wert, der sich von $array2 und $array1 unterscheidet. Es wird zurückgegeben, welche Werte in $array1, aber nicht in $array2 vorhanden sind. Das Ausgabeergebnis sollte sein:

Array ( [c] => cherry [d] => date )
Nach dem Login kopieren

Methode 2: Verwenden Sie die Funktion array_udiff()

Wenn die Array-Elemente, die wir vergleichen müssen, nicht nur einfache Werte sind, sondern auch erweiterte Vergleiche erfordern, müssen wir die Funktion array_udiff() verwenden. Dies ermöglicht uns die Verwendung einer benutzerdefinierten Rückruffunktion zum Vergleich. Die Verwendung ist wie folgt:

<?php
function compare($x, $y) {
   if ($x === $y) {
      return 0;
   }
   return ($x > $y) ? 1 : -1;
}

$array1 = array("apple", "banana", "cherry", "date");
$array2 = array("apple", "banana", "grape");

$result = array_udiff($array1, $array2, "compare");

print_r($result);
?>
Nach dem Login kopieren

Im obigen Code definieren wir eine Vergleichsrückruffunktion „compare()“, mit der die Größenbeziehung zwischen zwei Elementen verglichen und das ursprüngliche Array-Element zurückgegeben wird. Als nächstes verwenden wir die Funktion array_udiff() und übergeben zwei Arrays und eine benutzerdefinierte Rückruffunktion, die die Elemente zurückgibt, die im ersten Array vorhanden sind, und die Elemente, die im zweiten Array nicht vorhanden sind. Das Ausgabeergebnis sollte sein:

Array ( [2] => cherry [3] => date )
Nach dem Login kopieren

Methode 3: Verwenden Sie die Funktion array_diff_key().

Wenn wir nur die Schlüssel zweier Arrays vergleichen müssen, nicht die Werte, können wir die Funktion array_diff_key() verwenden. Es werden Werte mit nicht übereinstimmenden Schlüsseln in beiden Arrays zurückgegeben. Die Verwendung ist wie folgt:

<?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "banana", "d" => "date");

$result = array_diff_key($array1, $array2);

print_r($result);
?>
Nach dem Login kopieren

Im obigen Code vergleichen wir die Schlüssel der beiden Arrays und geben den Wert des Schlüsselwerts in $array1 zurück, der sich von $array2 unterscheidet. Das Ausgabeergebnis sollte sein:

Array ( [c] => cherry )
Nach dem Login kopieren
Nach dem Login kopieren

Methode 4: Verwenden Sie die Funktion array_udiff_assoc().

Wenn wir verschiedene Werte zweier mehrdimensionaler Arrays vergleichen müssen, müssen wir die Funktion array_udiff_assoc() verwenden die Funktion array_udiff(), mit der Ausnahme, dass sie den Vergleich mehrdimensionaler Arrays unterstützt. Die Verwendung ist wie folgt:

<?php
function compare($x, $y) {
   if ($x === $y) {
      return 0;
   }
   return ($x > $y) ? 1 : -1;
}

$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "banana", "d" => "date");

$result = array_udiff_assoc($array1, $array2, "compare");

print_r($result);
?>
Nach dem Login kopieren

Im obigen Code definieren wir eine Rückruffunktion „compare()“ zum Vergleichen mehrdimensionaler Array-Elemente, und die Verwendung ähnelt Methode 2. Wir übergeben zwei mehrdimensionale Arrays und verwenden die Callback-Funktion, um sie zu vergleichen. Das Ergebnis gibt die Elemente zurück, die in $array1, aber nicht in $array2 vorhanden sind. Das Ausgabeergebnis sollte sein:

Array ( [c] => cherry )
Nach dem Login kopieren
Nach dem Login kopieren

Conclusion

PHP bietet eine sehr umfangreiche Funktion zum Vergleich verschiedener Werte zwischen zwei Arrays. Wir können die Funktion array_diff() oder array_udiff() verwenden, um verschiedene Werte zwischen gewöhnlichen Arrays zu vergleichen, die Funktion array_diff_key() verwenden, um verschiedene Werte zwischen Arrays mit unterschiedlichen Schlüsselwerten zu vergleichen, und die Funktion array_udiff_assoc() zum Vergleichen verwenden mehrdimensionale Arrays mit unterschiedlichen Werten. Die Beherrschung der Verwendung dieser Funktionen wird uns bei der Verarbeitung von Daten während der PHP-Entwicklung erheblich helfen.

Das obige ist der detaillierte Inhalt vonSo finden Sie in PHP unterschiedliche Werte in zwei Arrays. 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