Lorsque vous effectuez un traitement des données, en particulier dans les scénarios où la comparaison de la différence de données par lots est requise, l'utilisation de la fonction Array_Diff_Diff_Diff_Diff_Diff_Diff_Diff de PHP peut nous aider efficacement à atteindre cette exigence. Cet article vous montrera comment implémenter efficacement la comparaison de la différence de données par lots via cette fonction, en particulier lors de la comparaison des comparaisons de noms de clé personnalisées.
array_diff_uassoc est une fonction fournie par PHP qui peut être utilisée pour calculer les différences entre deux tableaux ou plus et peut personnaliser la façon dont les noms de clés sont comparés. Semblable à la fonction Array_Diff_assoc , Array_Diff_uassoc compare non seulement les valeurs du tableau, mais compare également les noms de clés du tableau. Cependant, la différence est que Array_Diff_uassoc permet aux développeurs de fournir des fonctions de comparaison de nom de clé personnalisées.
array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
$ array1 : le premier tableau.
$ array2 : le tableau à comparer.
$ key_compare_func : fonction de comparaison de nom de clé personnalisé, qui doit renvoyer une valeur entière, représentant le résultat de comparaison de deux clés.
Supposons que nous ayons deux tableaux associatifs qui contiennent respectivement l'ID de produit et le nom, et maintenant nous voulons découvrir les produits qui n'apparaissent pas dans le deuxième tableau. Nous devons non seulement comparer les valeurs du tableau, mais les comparer également dans la fonction de comparaison de nom de clé personnalisé.
<?php
// Le premier tableau,Produits inclusIDet nom
$array1 = [
101 => 'Apple',
102 => 'Banana',
103 => 'Orange',
104 => 'Grape'
];
// Le deuxième tableau,Produits inclusIDet nom
$array2 = [
101 => 'Apple',
102 => 'Banana',
105 => 'Mango'
];
// Fonction de comparaison de nom de clé personnalisé,Comparez la taille des noms de clés
function custom_key_compare($key1, $key2) {
return $key1 <=> $key2; // utiliser PHP 7 Opérateur de comparaison
}
// utiliser array_diff_uassoc Découvrir $array1 Pas ici $array2 Éléments
$result = array_diff_uassoc($array1, $array2, 'custom_key_compare');
// Résultat de sortie
print_r($result);
?>
Array1 et Array2 Stockez deux ensembles d'ID de produit et de noms respectivement.
Nous avons personnalisé une fonction Custom_key_Compare pour comparer les noms de clés dans le tableau à l'aide de l'opérateur <=> .
Utilisez Array_Diff_uassoc pour comparer ces deux tableaux, des éléments de retour qui existent dans Array1 mais pas dans Array2 .
Array
(
[103] => Orange
[104] => Grape
)
Comme vous pouvez le voir, les paires d'ID du produit et de noms présentes dans Array1 sont renvoyées dans le résultat, mais ces données ne sont pas trouvées dans Array2 .
La fonction Array_Diff_uassoc est très utile dans la comparaison de la différence de données par lots, en particulier lorsque vous devez comparer les données en fonction des règles personnalisées telles que la comparaison du nom de clé. Voici quelques scénarios d'application courants:
Synchronisation de la base de données : lors de la synchronisation des données de la base de données, vous pouvez utiliser array_diff_uassoc pour trouver les données différentielles dans les deux bases de données, puis effectuer l'opération de synchronisation correspondante.
Gestion des stocks de produits : dans les plates-formes de commerce électronique, il est souvent nécessaire de comparer l'inventaire actuel avec les dernières informations d'inventaire. Array_Diff_uassoc peut vous aider à découvrir quels produits n'ont pas été mis à jour et quels produits sont nouvellement ajoutés.
Comparaison des données du journal : array_diff_uassoc peut vous aider à comparer efficacement les différences de données entre deux fichiers journaux et à localiser rapidement les problèmes dans le journal.
Grâce à la fonction Array_Diff_uassoc de PHP, nous pouvons implémenter efficacement la comparaison différentielle des données par lots, en particulier dans les scénarios où une comparaison de nom de clé personnalisée est requise, ce qui peut fournir une flexibilité plus élevée. Que ce soit dans la synchronisation de la base de données, la gestion des stocks ou la comparaison des données de journal et la comparaison des données, Array_Diff_uassoc est un outil très pratique.