Heim  >  Artikel  >  Backend-Entwicklung  >  So berechnen Sie die Array-Differenz in PHP

So berechnen Sie die Array-Differenz in PHP

王林
王林nach vorne
2024-03-19 11:40:07914Durchsuche

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

Zum Beispiel:

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

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

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

Zum Beispiel:

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

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

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

Zum Beispiel:

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

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

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

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"]);
}

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]]

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lsjlt.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen