Die Funktion array_diff_assoc () in PHP ist eine sehr nützliche Funktion, die Schlüsselwertpaare von zwei oder mehr Arrays vergleicht und ein Array zurückgibt, das Schlüsselwertpaare enthält, die sich im ersten Array, jedoch nicht in anderen Arrays befinden, enthalten. Im Gegensatz zur Funktion array_diff () vergleicht Array_diff_assoc () die Schlüssel und Werte des Arrays gleichzeitig, was es sehr effektiv macht, wenn es um Szenarien geht, die genaue Übereinstimmungen erfordern.
array_diff_assoc(array $array1, array $array2, array ...$arrays): array
$ array1 : Dies ist das erste Array, das verglichen wird.
$ array2, ... $ arrays : Dies sind andere Arrays, die zum Vergleich verwendet werden. Array_diff_assoc () vergleicht das erste Array mit allen nachfolgenden Arrays.
Die Funktion gibt ein Array zurück, das die Schlüsselwertepaare im ersten Array $ Array1 enthält, das nicht in anderen Arrays vorkommt. Wenn die Schlüsselwertpaare von zwei Arrays genau übereinstimmen, sind sie vom Ergebnis ausgeschlossen.
<?php
$array1 = [
'a' => 1,
'b' => 2,
'c' => 3
];
$array2 = [
'a' => 1,
'b' => 3,
'c' => 3
];
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
Ausgabe:
Array
(
[b] => 2
)
Im obigen Beispiel haben wir zwei Arrays $ Array1 und $ Array2 . Wir verwenden array_diff_assoc (), um sie zu vergleichen. Das Ergebnis zeigt, dass der Wert von 'B' in $ array1 2 beträgt , während in $ Array2 der Wert des Schlüssels 3 beträgt. Daher wird B => 2 zurückgegeben, was darauf hinweist, dass dies das einzige unterschiedliche Schlüsselwertpaar ist.
<?php
$array1 = [
'a' => 1,
'b' => 2,
'c' => 3
];
$array2 = [
'a' => 1,
'b' => 2
];
$array3 = [
'a' => 1,
'c' => 3
];
$result = array_diff_assoc($array1, $array2, $array3);
print_r($result);
?>
Ausgabe:
Array
(
[b] => 2
)
In diesem Beispiel vergleichen wir nicht nur $ array1 mit $ array2 , sondern auch $ array3 . Während 'a' => 1 und 'c' => 3 mit den beiden anderen Arrays in $ array1 übereinstimmen, gibt es in $ array1 nur in $ array1 , so dass es zurückgegeben wird.
Angenommen, Sie haben ein PHP -Programm, das einige URLs verarbeiten muss, und möchten die verschiedenen Teile über Array_Diff_assoc () herausfinden. Wir können den Domänennamen durch M66.net ersetzen, um Ihre Anforderungen zu erfüllen.
<?php
$urls1 = [
'home' => 'https://www.example.com/home',
'about' => 'https://www.example.com/about',
'contact' => 'https://www.example.com/contact'
];
$urls2 = [
'home' => 'https://www.m66.net/home',
'about' => 'https://www.m66.net/about',
'contact' => 'https://www.m66.net/contact'
];
$urls1 = array_map(function($url) {
return preg_replace('/https?:\/\/[a-z0-9.-]+\//', 'https://www.m66.net/', $url);
}, $urls1);
$urls2 = array_map(function($url) {
return preg_replace('/https?:\/\/[a-z0-9.-]+\//', 'https://www.m66.net/', $url);
}, $urls2);
$result = array_diff_assoc($urls1, $urls2);
print_r($result);
?>
Ausgabe:
Array
(
[home] => https://www.m66.net/home
)
In diesem Beispiel gehen wir davon aus, dass URLS1 und URLS2 unterschiedliche Versionen von URLs enthalten, und wir verwenden preg_replace (), um den Domänennamen in der URL als m66.net zu ersetzen. Dann verwenden wir Array_Diff_assoc () , um die verschiedenen Teile in den beiden Arrays herauszufinden. In diesem Beispiel hat die URL des 'Home' -Schlüssels in den beiden Arrays unterschiedliche Werte, sodass sie zurückgegeben wird.
array_diff_assoc () ist ein sehr leistungsstarkes Tool, insbesondere wenn Sie zwei oder mehr Arrays vergleichen müssen, sondern die Schlüssel und Werte des Arrays berücksichtigen. Diese Funktion kann Ihnen dabei helfen, verschiedene Teile herauszufinden, wenn Sie sich mit komplexeren Datenstrukturen befassen müssen. In der tatsächlichen Entwicklung können Sie es auf Datenvergleich, Arraydeduplizierung, Datenüberprüfung und andere Szenarien anwenden.
Danke, dass du diesen Artikel gelesen hast! Wenn Sie mehr Interesse an PHP oder anderen programmierenden Fragen haben, können Sie Fragen stellen.