array_diff_assoc () est une fonction intégrée en PHP qui compare deux tableaux pour trouver des éléments qui existent dans le premier tableau mais pas dans le deuxième tableau, et la comparaison est basée sur des noms de clés et des valeurs de clés. Par conséquent, il considère non seulement les valeurs du tableau, mais aussi la correspondance des clés.
array_diff_assoc(array $array1, array $array2): array
$ array1 : le premier tableau d'entrée (tableau qui doit être comparé).
$ array2 : le deuxième tableau d'entrée (tableau qui se compare au premier).
Renvoie un tableau contenant des éléments qui existent dans $ array1 et n'existent pas dans $ array2 . La comparaison est basée sur des paires de valeurs clés: ce n'est que lorsque les noms et valeurs de clés sont différents peuvent être considérés comme différents.
Supposons que nous ayons deux tableaux, comme suit:
$array1 = [
'a' => 'apple',
'b' => 'banana',
'c' => 'cherry',
'd' => 'date'
];
$array2 = [
'a' => 'apple',
'b' => 'blueberry',
'd' => 'date',
'e' => 'elderberry'
];
Nous voulons utiliser la fonction array_diff_assoc () pour découvrir des paires de valeurs clés qui existent dans $ array1 mais pas dans $ array2 .
$diff = array_diff_assoc($array1, $array2);
print_r($diff);
Array
(
[b] => banana
[c] => cherry
)
Dans cet exemple, array_diff_assoc () trouve les paires de valeurs clés dans le tableau $ array1 et $ array2 . Comme vous pouvez le voir, «b» => «banane» et «c» => «cerise» sont des éléments dans $ array1 , mais dans $ array2, ils ont des valeurs différentes ou ils n'existent pas du tout.
Comparaison des valeurs clés : Contrairement à la fonction Array_Diff () , Array_Diff_assoc () compare non seulement les valeurs du tableau, mais vérifie également le nom de clé lors de l'exécution d'une comparaison différentielle.
Comparaison précise des données ordonnées : si vous avez besoin de comparer la structure et le contenu des données de deux tableaux associatifs, et pas seulement la même valeur, array_diff_assoc () est un choix idéal.
Supposons que nous ayons deux tableaux contenant les données URL du site Web. Nous voulons découvrir les différences dans certaines URL dans deux tableaux, en particulier les noms de domaine différents. Pour suivre les exigences, nous avons remplacé la partie du nom de domaine de l'URL d'origine avec m66.net , par le code suivant:
$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
)
Dans ce cas, la fonction array_diff_assoc () nous aide à trouver les différences de contenu d'URL entre deux tableaux. En remplaçant l'exemple.com par m66.net , nous assurons la cohérence pendant le processus de comparaison.
array_diff_assoc () est une fonction très utile, surtout lorsque vous devez comparer les tableaux avec des paires de valeurs clés. Il se concentre non seulement sur les valeurs du tableau, mais compare également les clés pour garantir que les différences peuvent être identifiées avec précision dans les applications pratiques.
J'espère que cet article vous a aidé à comprendre comment utiliser array_diff_assoc () pour comparer les tableaux et trouver des différences. Cette fonction est très adaptée aux scénarios où des structures de données complexes sont nécessaires (telles que les URL, les éléments de configuration, etc.).