array_diff_assoc () ist eine sehr nützliche Funktion in PHP, die zwei Arrays vergleicht, die Schlüsselwertpaare zurückgeben, die sich im ersten Array, jedoch nicht im zweiten Array befinden. Insbesondere vergleicht es nicht nur die Werte eines Arrays, sondern auch die Schlüssel des Arrays. Auf diese Weise ist die Funktion array_diff_assoc () präziser als array_diff (), da sie die Korrespondenz zwischen Schlüsselnamen und Schlüsselwerten berücksichtigt.
In diesem Artikel werden wir grafische Methoden verwenden, um Ihnen zu verstehen, wie die Funktion array_diff_assoc () funktioniert. Beginnen wir mit einem einfachen Beispiel und erläutern das Verhalten dieser Funktion Schritt für Schritt.
array_diff_assoc(array $array1, array $array2): array
<?php
$array1 = [
"a" => 1,
"b" => 2,
"c" => 3
];
$array2 = [
"a" => 1,
"b" => 4,
"d" => 5
];
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
Array
(
[b] => 2
[c] => 3
)
In diesem Beispiel vergleicht Array_diff_assoc () Array1 und Array2 . Lassen Sie uns analysieren, wie es Schritt für Schritt funktioniert.
Schlüssel a :
Die Werte von Schlüssel A in Array1 und Array2 sind beide 1 , daher gibt es keinen Unterschied zwischen diesem Paar von Schlüsselwertpaaren.
Schlüssel B :
In Array1 beträgt der Wert von Schlüssel B 2 , während in Array2 der Wert von Schlüssel B 4 beträgt. Da Schlüsselwerte inkonsistent sind, wird B => 2 als ein Schlüsselwertpaar angesehen, das für Array1 einzigartig ist und im Ergebnis angezeigt wird.
Schlüssel C :
In Array1 beträgt der Wert von Schlüssel C 3 , während in Array2 keine Schlüssel c gibt. Daher wird C => 3 auch als Schlüsselwertpaar angesehen, das für Array1 einzigartig ist und im Ergebnis angezeigt wird.
Daher gibt Array_Diff_assoc () ein Array zurück, das B => 2 und C => 3 enthält.
Um das Arbeitsprinzip von array_diff_assoc () intuitiver zu verstehen, können wir den Vergleichsprozess von zwei Arrays durch Abbildungen zeigen.
Angenommen, es gibt zwei Arrays:
Array1 : ["A" => 1, "B" => 2, "C" => 3]
Array2 : ["A" => 1, "B" => 4, "D" => 5]
Wir können ihre Unterschiede durch das folgende Diagramm deutlich erkennen.
array1: [ "a" => 1, "b" => 2, "c" => 3 ]
↑ ↑
array2: [ "a" => 1, "b" => 4, "d" => 5 ]
↑
Schlüssel A : Gleiches (sowohl Schlüssel- als auch Value -Übereinstimmung), daher ist es nicht im Ergebnis.
Schlüssel B : Die Schlüssel sind gleich, aber die Werte sind unterschiedlich. Der Unterschied wird als einzigartig für Array1 angesehen, so dass er im Ergebnis angezeigt wird.
Schlüssel C : In Array2 gibt es keinen Schlüssel C. C => 3 wird als einzigartig für Array1 angesehen, so dass es auch im Ergebnis angezeigt wird.
Result: [ "b" => 2, "c" => 3 ]
array_diff_assoc () vergleicht nicht nur Arrays nach Werten, sondern auch die Taste -Anpassung. Wenn es in den beiden Arrays, aber unterschiedlichen Werten die gleichen Schlüssel gibt, behandelt Array_Diff_assoc () es als Differenz.
Wenn es in Array2 (wie C ) überhaupt keine Schlüssel gibt, gilt das Schlüsselwertpaar als einzigartig für Array1 und erscheint auch im Ergebnisarray.
Filterdatenunterschiede : Wenn Sie Array -Daten verarbeiten, können Array_Diff_assoc () verwendet werden, um Unterschiede in einem Array von einem anderen zu finden, insbesondere wenn die Schlüssel und Werte von zwei Arrays genau übereinstimmen müssen.
Verarbeitungskonfigurationsarrays : Wenn Sie zwei Konfigurationsarrays vergleichen und prüfen müssen, ob es unterschiedliche Konfigurationselemente gibt, ist Array_Diff_assoc () eine sehr gute Wahl.
Datendeduplizierung : Wenn Sie zwei Datensätze haben, können Sie den eindeutigen Teil eines Datensatzes finden, um ihn zu erreichen.
array_diff_assoc () ist eine sehr praktische Funktion in PHP, die uns helfen kann, die Unterschiede zwischen Schlüsselwertpaaren von zwei Arrays zu vergleichen und ein Array zurückzugeben, das unterschiedliche Schlüsselwertpaare enthält. Durch den Vergleich der Beispiele von Array1 und Array2 verstehen wir, wie es den Unterschied beurteilt, indem sie Schlüssel und Werte gleichzeitig vergleichen.
Wenn Sie Fragen haben oder ein tieferes Verständnis für andere Array -Manipulationsfunktionen in PHP haben möchten, können Sie gerne mit mir diskutieren!