Position actuelle: Accueil> Derniers articles> Comparaison des différences de contenu en charge utile dans l'API

Comparaison des différences de contenu en charge utile dans l'API

M66 2025-06-06

Lors du développement d'API, nous devons souvent comparer le contenu de deux charges utiles afin de déterminer leurs différences. Par exemple, lors de la mise à jour des informations de l'utilisateur, comparez les différences entre les données nouvelles et anciennes ou lors de la débogage de l'interface, vérifiez si les données retournées sont cohérentes avec les données attendues. PHP fournit une fonction très utile - array_diff_assoc , qui peut nous aider à comparer les différences entre deux tableaux. Voici une explication détaillée de la façon d'utiliser cette fonction pour comparer le contenu de la charge utile.

Quelle est la fonction Array_Diff_assoc ?

Array_Diff_assoc est une fonction intégrée en PHP qui compare les paires de valeurs clés de deux tableaux pour trouver des éléments qui existent dans le premier tableau mais pas dans le deuxième tableau. Contrairement à Array_Diff , Array_Diff_assoc compare non seulement les valeurs, mais compare également les noms de clés. L'élément n'est considéré comme différent que lorsque le nom et la valeur de la clé ne correspondent pas.

Prototype de fonction:

 array_diff_assoc(array $array1, array $array2): array
  • $ array1 : le premier tableau, en tant que tableau de référence à comparaison.

  • $ array2 : le deuxième tableau, par rapport au premier tableau.

Cette fonction renvoie un tableau contenant des éléments qui existent dans $ array1 mais pas dans $ array2 .

Implémentez la comparaison du contenu de la charge utile de l'API

Supposons que nous ayons deux charges utiles au format JSON, représentant respectivement les données anciennes et nouvelles utilisateur, dans le format comme suit:

Old Data (old_payload.json)

 {
    "user_id": 12345,
    "name": "Zhang San",
    "email": "zhangsan@m66.net",
    "phone": "1234567890"
}

Nouvelles données (new_payload.json)

 {
    "user_id": 12345,
    "name": "Zhang San",
    "email": "zhangsan@m66.net",
    "phone": "0987654321"
}

Nous voulons comparer les différences de données dans ces deux charges utiles JSON et vérifier si leurs paires de valeurs clés sont cohérentes. Ici, nous pouvons utiliser array_diff_assoc pour l'implémenter.

Implémentation de code

Étape 1: Lire et décoder les données JSON

Tout d'abord, nous devons convertir ces deux données JSON en tableaux PHP avant de pouvoir les comparer.

 <?php

// Anciennes données
$old_payload = '{"user_id": 12345, "name": "Zhang San", "email": "zhangsan@m66.net", "phone": "1234567890"}';
// Nouvelles données
$new_payload = '{"user_id": 12345, "name": "Zhang San", "email": "zhangsan@m66.net", "phone": "0987654321"}';

// décodage JSON Les données sont PHP Tableau
$old_data = json_decode($old_payload, true);
$new_data = json_decode($new_payload, true);

// 输出Tableau查看结果
var_dump($old_data);
var_dump($new_data);
?>

Étape 2: Utilisez array_diff_assoc pour comparer les différences

Avec la fonction Array_Diff_assoc , nous pouvons facilement trouver la différence entre deux tableaux.

 <?php

// Obtenez la différence
$differences = array_diff_assoc($old_data, $new_data);

// Différence de sortie
if (!empty($differences)) {
    echo "Différences de données:\n";
    print_r($differences);
} else {
    echo "Données cohérentes,Aucune différence。\n";
}
?>

Résultats en cours:

 Différences de données:
Array
(
    [phone] => 1234567890
)

Comme indiqué ci-dessus, le résultat montre que la valeur du téléphone est différente dans les anciennes données et les nouvelles données, montrant la valeur du téléphone de 1234567890 dans les anciennes données. C'est exactement la différence que nous espérons passer la comparaison.

Scénarios d'application

  • Débogage de l'API : Lors du développement d'une API, vous devrez peut-être comparer les données renvoyées par l'interface avec les résultats attendus. Utilisez Array_Diff_assoc pour afficher rapidement les différences et aider les développeurs à localiser les problèmes.

  • Mise à jour des données : Dans le scénario de la mise à jour du profil utilisateur, cette méthode peut être utilisée pour comparer les différences entre les données nouvelles et anciennes pour déterminer quels champs ont changé.

  • Journalisation : Lors de l'enregistrement des journaux de comportement des utilisateurs ou des changements de données, comprenez le contenu spécifique des changements de données, afin de faciliter une analyse ultérieure.