So berechnen Sie die Array-Differenz in PHP

王林
Freigeben: 2024-03-19 11:42:01
nach vorne
966 Leute haben es durchsucht

Der PHP-Editor Xigua liefert Ihnen eine detaillierte Analyse, wie PHP die Differenz in Arrays berechnet. In der tatsächlichen Entwicklung ist der Vergleich der Unterschiede zwischen zwei Arrays eine häufige Anforderung, die uns dabei helfen kann, neu hinzugefügte, gelöschte und geänderte Elemente herauszufinden. Wir können diese Funktion einfach über die in PHP integrierten Funktionen und einige einfache Logik implementieren. Lassen Sie uns als Nächstes untersuchen, wie Sie mit PHP die Differenz von Arrays berechnen können, um Ihre Entwicklungsarbeit effizienter und bequemer zu gestalten.

PHP-Leitfaden zur Berechnung von Array-Differenzen

Bei der Berechnung von Array-Unterschieden werden die Unterschiede von Elementen in zwei oder mehr Arrays verglichen und gegenübergestellt. php bietet je nach gewünschtem Ergebnis und Struktur des Arrays mehrere Möglichkeiten, diese Aufgabe zu erfüllen.

array_diff()-Funktion

array_diff() Die Funktion wird verwendet, um Elemente zu finden, die im ersten Array vorhanden sind, aber nicht in allen anderen Arrays. Die Syntax lautet wie folgt:

array_diff($array1, $array2, ..., $arrayN);
Nach dem Login kopieren

Zum Beispiel:

$array1 = ["apple", "banana", "cherry"];
$array2 = ["banana", "orange"];

$diff = array_diff($array1, $array2); // ["apple", "cherry"]
Nach dem Login kopieren

array_diff_assoc()-Funktion

Die Funktion

array_diff_assoc() ähnelt array_diff_assoc() 函数类似于 array_diff(), vergleicht aber auch Array-Schlüssel. Es gibt Elemente mit demselben Schlüssel und Wert zurück. Die Syntax lautet wie folgt:

array_diff_assoc($array1, $array2, ..., $arrayN);
Nach dem Login kopieren

Zum Beispiel:

$array1 = ["apple" => 1, "banana" => 2, "cherry" => 3];
$array2 = ["banana" => 2, "orange" => 4];

$diff = array_diff_assoc($array1, $array2); // ["apple" => 1, "cherry" => 3]
Nach dem Login kopieren

Array_diff_key()-Funktion

array_diff_key() Funktion wird verwendet, um Elemente mit unterschiedlichen Schlüsseln in zwei Arrays zu finden. Die Syntax lautet wie folgt:

array_diff_key($array1, $array2, ..., $arrayN);
Nach dem Login kopieren

Zum Beispiel:

$array1 = ["apple" => 1, "banana" => 2];
$array2 = ["banana" => 2, "orange" => 4];

$diff = array_diff_key($array1, $array2); // ["apple" => 1]
Nach dem Login kopieren

array_udiff()- und array_uintersect()-Funktionen

array_udiff()array_uintersect() 函数用于使用用户自定义比较函数比较两个数组中的元素。array_udiff() 返回第一个数组中存在且在其他所有数组中不存在的元素,而 array_uintersect() Gibt Elemente zurück, die in beiden Arrays vorhanden sind. Ihre Syntax ist wie folgt:

array_udiff($array1, $array2, ..., $arrayN, $compareFunction);
array_uintersect($array1, $array2, ..., $arrayN, $compareFunction);
Nach dem Login kopieren

Benutzerdefinierte Vergleichsfunktionen müssen zwei Parameter (Array-Elemente) annehmen und eine Ganzzahl zurückgeben:

  • Wenn das erste Element kleiner als das zweite Element ist, geben Sie -1 zurück.
  • Wenn das erste Element gleich dem zweiten Element ist, wird 0 zurückgegeben.
  • Wenn das erste Element größer als das zweite Element ist, wird 1 zurückgegeben.

Zum Beispiel sortiert die folgende benutzerdefinierte Vergleichsfunktion eine Reihe von Früchten nach Namen:

function compareFruits($a, $b) {
return strcmp($a["name"], $b["name"]);
}
Nach dem Login kopieren

Berechnen Sie die Differenz mithilfe einer benutzerdefinierten Vergleichsfunktion:

$array1 = [
["name" => "apple", "price" => 1],
["name" => "banana", "price" => 2],
["name" => "cherry", "price" => 3],
];

$array2 = [
["name" => "banana", "price" => 2],
["name" => "orange", "price" => 4],
];

$diff = array_udiff($array1, $array2, "compareFruits"); // [["name" => "apple", "price" => 1], ["name" => "cherry", "price" => 3]]
Nach dem Login kopieren

Im obigen Beispiel ist compareFruits 函数按名称对数组元素进行排序,因此结果包含 array1 中存在且在 array2 eine Frucht, die es nicht gibt.

Das obige ist der detaillierte Inhalt vonSo berechnen Sie die Array-Differenz in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:lsjlt.com
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