La fonction Array_Diff_assoc () dans PHP est une fonction très utile qui compare les paires de valeurs clés de deux tableaux ou plus et renvoie un tableau contenant des paires de valeurs clés qui se trouvent dans le premier tableau mais pas dans d'autres tableaux. Contrairement à la fonction Array_Diff () , Array_Diff_assoc () compare les clés et les valeurs du tableau en même temps, ce qui le rend très efficace lorsque vous traitez des scénarios qui nécessitent des correspondances exactes.
array_diff_assoc(array $array1, array $array2, array ...$arrays): array
$ Array1 : Il s'agit du premier tableau à comparer.
$ array2, ... $ Arrays : Ce sont d'autres tableaux utilisés pour comparer. array_diff_assoc () compare le premier tableau avec tous les tableaux suivants.
La fonction renvoie un tableau contenant les paires de valeurs de clé dans le premier tableau $ array1 qui ne se trouvent pas dans d'autres tableaux. Si les paires de valeurs clés de deux tableaux correspondent exactement, elles sont exclues du résultat.
<?php
$array1 = [
'a' => 1,
'b' => 2,
'c' => 3
];
$array2 = [
'a' => 1,
'b' => 3,
'c' => 3
];
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
Sortir:
Array
(
[b] => 2
)
Dans l'exemple ci-dessus, nous avons deux tableaux $ array1 et $ array2 . Nous utilisons array_diff_assoc () pour les comparer. Le résultat montre que la valeur de «b» dans $ array1 est 2 , tandis que dans $ array2 , la valeur de la clé est 3 . Par conséquent, B => 2 sera renvoyé, indiquant qu'il s'agit de la seule paire de valeurs de clé différente.
<?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);
?>
Sortir:
Array
(
[b] => 2
)
Dans cet exemple, nous comparons non seulement $ array1 à $ array2 , mais ajoutons également $ array3 . Alors que 'a' => 1 et 'c' => 3 sont cohérents avec les deux autres tableaux dans $ array1 , 'b' => 2 n'existe que dans $ array1 , il est donc retourné.
Supposons que vous ayez un programme PHP qui doit traiter certaines URL et que vous souhaitez découvrir les différentes pièces via array_diff_assoc () . Nous pouvons remplacer le nom de domaine par m66.net pour répondre à vos besoins.
<?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);
?>
Sortir:
Array
(
[home] => https://www.m66.net/home
)
Dans cet exemple, nous supposons que URLS1 et URLS2 contiennent différentes versions d'URL, et nous utilisons preg_replace () pour remplacer le nom de domaine dans l'URL en tant que m66.net . Ensuite, nous utilisons array_diff_assoc () pour découvrir les différentes pièces des deux tableaux. Dans cet exemple, l'URL de la clé «Home» a des valeurs différentes dans les deux tableaux, il est donc renvoyé.
array_diff_assoc () est un outil très puissant, surtout lorsque vous devez comparer deux tableaux ou plus, il prend en compte les clés et les valeurs du tableau. Cette fonction peut vous aider à trouver différentes parties lorsque vous devez gérer des structures de données plus complexes. Dans le développement réel, vous pouvez les appliquer à la comparaison des données, à la déduplication du tableau, à la vérification des données et à d'autres scénarios.
Merci d'avoir lu cet article! Si vous avez plus d'intérêt pour PHP ou d'autres questions liées à la programmation, n'hésitez pas à poser des questions.