Position actuelle: Accueil> Derniers articles> Trouver des modifications de champ dans les données de retour de l'API

Trouver des modifications de champ dans les données de retour de l'API

M66 2025-06-06

Dans de nombreux scénarios de développement, les données renvoyées par l'API peuvent changer, en particulier lors de l'exécution de la synchronisation des données, de la surveillance de l'état ou du débogage, il est très important de déterminer quels champs ont changé. PHP fournit la fonction Array_Diff_uassoc , qui peut non seulement être utilisée pour comparer les différences entre deux tableaux, mais également personnaliser la logique de comparaison pendant le processus de comparaison. Ceci est particulièrement utile pour trouver des changements de champ à partir des données que nous renvoyons de l'API.

Introduction à la fonction array_diff_uassoc

La fonction Array_Diff_uassoc est utilisée pour calculer la différence entre deux tableaux. Il compare les noms et valeurs de clés de deux tableaux, renvoyant des paires de valeurs clés qui existent dans le premier tableau mais pas dans le deuxième tableau. Cette fonction peut accepter une fonction de rappel personnalisée pour comparer les éléments d'un tableau.

 array_diff_uassoc ( array $array1 , array $array2 , callable $value_compare_func ) : array
  • Array1 : le premier tableau.

  • Array2 : le deuxième tableau.

  • Value_Compare_Func : une fonction de rappel qui compare les valeurs dans un tableau.

Scénario d'application: découvrez les modifications des champs de données renvoyés par l'API

Supposons que nous ayons deux API de retour des données, dont l'une est les anciennes données et l'autre est la nouvelle données. Nous voulons savoir quels champs ont changé. Cela peut être réalisé via array_diff_uassoc .

Exemple de code:

 <?php

// Simuler les anciens API Retour des données
$oldData = [
    'id' => 1,
    'name' => 'John Doe',
    'email' => 'john@example.com',
    'age' => 30,
    'url' => 'https://example.com/profile/1'
];

// Simuler nouveau API Retour des données
$newData = [
    'id' => 1,
    'name' => 'John Doe',
    'email' => 'john@m66.net',
    'age' => 31,
    'url' => 'https://m66.net/profile/1'
];

// Fonctions de comparaison personnalisées:La valeur de comparaison est-elle égale?
function compareValues($value1, $value2) {
    return $value1 === $value2;
}

// Trouvez les changements de champ
$changedFields = array_diff_uassoc($oldData, $newData, 'compareValues');

// Champs de changement de sortie
echo "Changer les champs:\n";
print_r($changedFields);

?>

Explication du code

  1. Préparation des données: Supposons qu'il existe deux API qui renvoient les données $ olddata et $ newdata , qui peuvent avoir changé dans certains domaines.

  2. Fonction de comparaison: nous définissons une fonction de comparaison personnalisée CompareValues ​​pour déterminer si deux valeurs sont égales. Renvoie true si les valeurs sont égales, sinon renvoyez false .

  3. Appelez Array_Diff_uassoc : Utilisez Array_Diff_Uassoc pour comparer la différence entre les paires de valeurs clés dans $ oldata et $ newdata pour trouver les champs qui ont changé. array_diff_uassoc déterminera si la valeur de champ a changé en fonction de la fonction de comparaison personnalisée.

  4. Résultat de sortie: Sortie d'un champ changeant pour un traitement ultérieur.

résultat

Lorsque vous exécutez le code ci-dessus, vous obtiendrez la sortie suivante:

 Changer les champs:
Array
(
    [email] => john@example.com
    [age] => 30
    [url] => https://example.com/profile/1
)

Pourquoi choisir Array_Diff_uassoc ?

  • Comparaison des champs: array_diff_uassoc vous permet non seulement de vérifier les valeurs lors de la comparaison des tableaux, mais de déterminer également si les deux valeurs sont égales en fonction de la fonction de comparaison personnalisée que vous fournissez. Ceci est particulièrement utile pour les structures de données complexes ou lorsque le contenu du champ implique des flottements.

  • Personnalisation: les fonctions de comparaison personnalisées peuvent traiter de manière flexible avec différents formats de données ou des règles de comparaison spécifiques. Dans certains scénarios, vous ne vous souciez peut-être que des changements dans certains champs, Array_Diff_uassoc le rend plus efficace.

Résumer

Grâce à la fonction Array_Diff_uassoc , vous pouvez facilement trouver les modifications du champ dans les données de retour de l'API dans PHP, en particulier dans des scénarios tels que la synchronisation des données, le débogage ou la surveillance de l'état. Cette méthode vous aide non seulement à identifier les différences de données, mais vous offre également la possibilité de personnaliser les comparaisons et de vous adapter aux structures de données complexes.