array_diff_assoc () est une fonction très utile en PHP qui compare deux tableaux, renvoyant des paires de valeurs clés qui sont dans le premier tableau mais pas dans le deuxième tableau. Plus précisément, il compare non seulement les valeurs d'un tableau, mais aussi les clés du tableau. De cette façon, la fonction array_diff_assoc () est plus précise que Array_Diff () car elle prend en compte la correspondance entre les noms de clés et les valeurs de clé.
Dans cet article, nous utiliserons des méthodes graphiques pour vous aider à mieux comprendre comment fonctionne la fonction array_diff_assoc () . Commençons par un exemple simple et expliquons le comportement de cette fonction étape par étape.
array_diff_assoc(array $array1, array $array2): array
<?php
$array1 = [
"a" => 1,
"b" => 2,
"c" => 3
];
$array2 = [
"a" => 1,
"b" => 4,
"d" => 5
];
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
Array
(
[b] => 2
[c] => 3
)
Dans cet exemple, array_diff_assoc () compare Array1 et Array2 . Analysons comment cela fonctionne étape par étape.
Clé A :
Les valeurs de la clé A dans Array1 et Array2 sont toutes deux 1 , il n'y a donc pas de différence entre cette paire de paires de valeurs clés.
Clé B :
Dans Array1 , la valeur de la clé B est 2 , tandis que dans Array2 , la valeur de la clé B est 4 . Étant donné que les valeurs de clé sont incohérentes, B => 2 est considéré comme une paire de valeurs clés unique à Array1 et apparaît dans le résultat.
Clé C :
Dans Array1 , la valeur de la clé C est de 3 , tandis que dans Array2, il n'y a pas de clé c . C => 3 est donc également considéré comme une paire de valeurs de clé unique à Array1 et apparaît dans le résultat.
Par conséquent, array_diff_assoc () renvoie un tableau contenant b => 2 et c => 3 .
Afin de comprendre plus intuitivement le principe de travail de Array_Diff_assoc () , nous pouvons montrer le processus de comparaison de deux tableaux via des illustrations.
Supposons qu'il y ait deux tableaux:
array1 : ["a" => 1, "b" => 2, "c" => 3]
array2 : ["a" => 1, "b" => 4, "d" => 5]
Nous pouvons clairement voir leurs différences à travers le diagramme suivant.
array1: [ "a" => 1, "b" => 2, "c" => 3 ]
↑ ↑
array2: [ "a" => 1, "b" => 4, "d" => 5 ]
↑
Key A : Idem (la clé et la correspondance de valeur), donc ce n'est pas dans le résultat.
Clé B : Les clés sont les mêmes mais les valeurs sont différentes. La différence est considérée comme unique à Array1 , il apparaît donc dans le résultat.
Clé C : Il n'y a pas de clé C dans Array2 . C => 3 est considéré comme unique à Array1 , il apparaît donc également dans le résultat.
Result: [ "b" => 2, "c" => 3 ]
array_diff_assoc () compare non seulement les tableaux par valeurs, mais il prend également en compte la correspondance des clés. S'il y a les mêmes clés dans les deux tableaux mais des valeurs différentes, Array_Diff_assoc () le traite comme une différence.
S'il n'y a pas de clé du tout dans Array2 (comme C ), la paire de valeurs de clé est considérée comme unique à Array1 et apparaîtra également dans le tableau de résultat.
Filtrage des différences de données : lors du traitement des données du tableau, array_diff_assoc () peut être utilisée pour trouver des différences dans un tableau à partir d'un autre, surtout si les clés et les valeurs de deux tableaux doivent correspondre exactement.
Traitement des tableaux de configuration : si vous devez comparer deux tableaux de configuration et vérifier s'il existe différents éléments de configuration, array_diff_assoc () est un très bon choix.
Déduplication des données : Lorsque vous avez deux ensembles de données, si vous souhaitez trouver la partie unique d'un ensemble de données, vous pouvez utiliser array_diff_assoc () pour les réaliser.
array_diff_assoc () est une fonction très pratique en PHP qui peut nous aider à comparer les différences entre les paires de valeurs clés de deux tableaux et renvoie un tableau contenant des paires de valeurs clés différentielles. En comparant les exemples de Array1 et Array2 , nous comprenons comment il juge la différence en comparant simultanément les clés et les valeurs.
Si vous avez des questions ou si vous souhaitez avoir une compréhension plus approfondie des autres fonctions de manipulation du tableau en PHP, n'hésitez pas à discuter avec moi!