Dans PHP, array_diff_assoc () et array_intersect_assoc () sont deux fonctions très utiles, respectivement, utilisées pour trouver la différence et l'intersection d'un tableau. Ils comparent non seulement les valeurs du tableau, mais aussi les noms de clés, ils comparent donc plus précisément les paires de valeurs clés. Dans cet article, nous apprendrons à utiliser ces deux fonctions en combinaison pour implémenter la différence et les opérations d'intersection d'un tableau.
La fonction array_diff_assoc () renvoie la différence entre deux tableaux ou plus. Contrairement à array_diff () , array_diff_assoc () compare non seulement les valeurs du tableau, mais compare également les noms de clés. Si un nom de clé et la valeur correspondante ne sont pas égaux dans plusieurs tableaux, il sera considéré comme une partie de l'ensemble de différence.
Prototype de fonction :
array_diff_assoc(array $array1, array $array2, array ...$arrays): array
Exemple de code :
$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, array_diff_assoc () ne renvoie que la valeur 2 correspondant au nom de clé "B" car il est différent dans $ array1 et $ array2 .
La fonction Array_INTERSECT_ASSOC () est utilisée pour retourner l'intersection de deux tableaux ou plus. Contrairement à array_intersect () , array_intersect_assoc () comparera également les noms de clés. Seuls les éléments avec la même valeur et les mêmes noms de clés apparaîtront à l'intersection.
Prototype de fonction :
array_intersect_assoc(array $array1, array $array2, array ...$arrays): array
Exemple de code :
$array1 = [
"a" => 1,
"b" => 2,
"c" => 3
];
$array2 = [
"a" => 1,
"b" => 2,
"d" => 4
];
$result = array_intersect_assoc($array1, $array2);
print_r($result);
Sortir :
Array
(
[a] => 1
[b] => 2
)
Dans cet exemple, Array_INTERSECT_ASSOC () renvoie la pièce où le nom de la clé et la valeur correspondante sont les mêmes, c'est-à-dire "A" => 1 et "B" => 2 .
En supposant que vous devez trouver l'intersection et la différence par rapport à deux tableaux, vous pouvez utiliser array_diff_assoc () et array_intersect_assoc () pour atteindre cet objectif.
Exemple de code :
$array1 = [
"a" => 1,
"b" => 2,
"c" => 3
];
$array2 = [
"a" => 1,
"b" => 3,
"d" => 4
];
// Intersection informatique
$intersect = array_intersect_assoc($array1, $array2);
// Calculez l'ensemble de différence
$diff = array_diff_assoc($array1, $array2);
echo "Intersection:\n";
print_r($intersect);
echo "Différence:\n";
print_r($diff);
Sortir :
Intersection:
Array
(
[a] => 1
)
Différence:
Array
(
[b] => 2
[c] => 3
)
Dans cet exemple, l'intersection ne contient que "A" => 1 , et la différence contient des éléments avec différents noms de clés et des valeurs correspondantes, c'est-à-dire "B" => 2 et "C" => 3 .
L'utilisation de Array_Diff_assoc () et Array_INTERSECT_ASSOC () peut être très pratique pour gérer les tableaux avec des paires de valeurs clés, en particulier lorsqu'elle est nécessaire de comparer avec précision les paires de tableaux clés. Voici quelques scénarios d'utilisation courants:
Comparez deux fichiers de configuration pour trouver leurs éléments de configuration courants et différents éléments de configuration.
Comparez les deux ensembles de données, découvrez leurs ensembles d'intersection et de différence et synchroniser ou fusionner les données.
Lorsque vous travaillez avec des tableaux multidimensionnels, assurez-vous que non seulement les valeurs du tableau, mais aussi les noms de clés.
En utilisant array_diff_assoc () et array_intersect_assoc () , vous pouvez facilement gérer les opérations de différence et d'intersection d'un tableau. Il convient de noter que les deux fonctions peuvent comparer les noms de clés et les valeurs correspondantes, ce qui les rend très utiles lorsqu'ils traitent des tableaux avec des clés associées.