array_diff_assoc () ist eine integrierte Funktion in PHP, die zwei Arrays zum Finden von Elementen im ersten Array vergleicht, aber nicht im zweiten Array, und der Vergleich basiert auf Schlüsselnamen und Schlüsselwerten. Daher berücksichtigt es nicht nur die Werte im Array, sondern auch die Korrespondenz der Schlüssel.
array_diff_assoc(array $array1, array $array2): array
$ array1 : Das erste Eingabebereich (Array, das verglichen werden muss).
$ array2 : Das zweite Eingangsarray (Array, das mit dem ersten vergleichbar ist).
Gibt ein Array zurück, das Elemente enthält, die in $ array1 existieren und in $ array2 nicht existieren. Der Vergleich basiert auf Schlüsselwertpaaren: Nur wenn die Schlüsselnamen und Werte unterschiedlich sind, können sie als unterschiedlich betrachtet werden.
Angenommen, wir haben zwei Arrays wie folgt:
$array1 = [
'a' => 'apple',
'b' => 'banana',
'c' => 'cherry',
'd' => 'date'
];
$array2 = [
'a' => 'apple',
'b' => 'blueberry',
'd' => 'date',
'e' => 'elderberry'
];
Wir möchten die Funktion array_diff_assoc () verwenden, um Schlüsselwertpaare zu finden, die in $ array1 , aber nicht in $ array2 vorhanden sind.
$diff = array_diff_assoc($array1, $array2);
print_r($diff);
Array
(
[b] => banana
[c] => cherry
)
In diesem Beispiel findet Array_diff_assoc () die Schlüsselwertepaare im Array $ Array1 und $ Array2 . Wie Sie sehen können, sind 'B' => 'Banane' und 'C' => 'Cherry' Elemente in $ array1 , aber in $ array2 haben sie entweder unterschiedliche Werte oder sie existieren überhaupt nicht.
Vergleich der Schlüsselwerte : Im Gegensatz zur Funktion array_diff () vergleicht Array_diff_assoc () nicht nur die Werte des Arrays, sondern überprüft auch den Schlüsselnamen, wenn ein Differentialvergleich durchgeführt wird.
Genauer Vergleich der geordneten Daten : Wenn Sie die Struktur und den Datengehalt von zwei assoziativen Arrays vergleichen müssen, nicht nur der gleiche Wert, ist Array_diff_assoc () eine ideale Wahl.
Angenommen, wir haben zwei Arrays, die die URL -Daten der Website enthalten. Wir möchten die Unterschiede in einigen URLs in zwei Arrays herausfinden, insbesondere in verschiedenen Domain -Namen. Um den Anforderungen zu folgen, haben wir den Domänennamen Teil der ursprünglichen URL durch M66.net durch den folgenden Code ersetzt:
$array1 = [
'home' => 'http://example.com/home',
'about' => 'http://example.com/about',
'contact' => 'http://example.com/contact'
];
$array2 = [
'home' => 'http://m66.net/home',
'about' => 'http://m66.net/about',
'contact' => 'http://m66.net/contact'
];
foreach ($array1 as $key => $url) {
$array1[$key] = str_replace('example.com', 'm66.net', $url);
}
foreach ($array2 as $key => $url) {
$array2[$key] = str_replace('m66.net', 'm66.net', $url);
}
$diff = array_diff_assoc($array1, $array2);
print_r($diff);
Array
(
[home] => http://m66.net/home
[about] => http://m66.net/about
[contact] => http://m66.net/contact
)
In diesem Fall hilft uns die Funktion array_diff_assoc () , die Unterschiede im URL -Inhalt zwischen zwei Arrays herauszufinden. Durch das Ersetzen von example.com durch m66.net gewährleisten wir während des Vergleichsprozesses eine Konsistenz.
array_diff_assoc () ist eine sehr nützliche Funktion, insbesondere wenn Sie Arrays mit Schlüsselwertpaaren vergleichen müssen. Es konzentriert sich nicht nur auf die Werte des Arrays, sondern vergleicht auch die Schlüssel, um sicherzustellen, dass die Unterschiede in praktischen Anwendungen genau identifiziert werden können.
Hoffentlich hat Ihnen dieser Artikel verstanden, wie man Array_Diff_assoc () verwendet, um Arrays zu vergleichen und Unterschiede zu finden. Diese Funktion ist sehr geeignet für Szenarien, in denen komplexe Datenstrukturen erforderlich sind (z. B. URLs, Konfigurationselemente usw.).