Position actuelle: Accueil> Derniers articles> Utilisez array_diff_assoc () dans le contrôleur pour détecter les champs de modifications pour les demandes de correctif

Utilisez array_diff_assoc () dans le contrôleur pour détecter les champs de modifications pour les demandes de correctif

M66 2025-06-06

Dans le développement de PHP, lors du traitement des demandes HTTP, nous devons souvent comparer les données soumises par le client avec les données du côté du serveur actuel, en particulier lors du traitement des demandes de correctifs , qui sont généralement utilisées pour mettre à jour certains champs de la ressource. Aujourd'hui, nous présenterons comment utiliser la fonction array_diff_assoc () dans le contrôleur pour détecter les champs modifiés dans la demande de correctif .

La fonction array_diff_assoc () est utilisée pour comparer deux tableaux et renvoyer leurs différences dans les noms de clés et les valeurs de clés. Il peut être très pratique de détecter quels champs ont changé. Lors du traitement des demandes de correctifs , nous devons généralement comparer les données d'origine dans la base de données avec la partie des données soumises par l'utilisateur pour découvrir les champs qui doivent être mis à jour.

Utiliser des scénarios

Supposons que nous ayons une table de base de données des profils d'utilisateurs et que nous voulons mettre à jour une partie des informations de l'utilisateur via la demande de correctif . Le client ne soumetra que des champs qui doivent être mis à jour et les champs inchangés ne seront pas inclus dans les données demandées. Nous pouvons utiliser la fonction array_diff_assoc () pour comparer les données d'origine avec les données nouvellement soumises et trouver les champs qui ont changé.

étape

1. Obtenez les données des données et des correctifs d'origine

Tout d'abord, nous devons obtenir les données d'origine dans la base de données et les données envoyées par le client via la demande de patch . Nous supposons que nous avons en quelque sorte récupéré les données utilisateur d'origine et les données soumises par le client.

 // Supposons qu'il s'agit des données utilisateur d'origine dans la base de données
$originalData = [
    'id' => 1,
    'name' => 'John Doe',
    'email' => 'johndoe@example.com',
    'phone' => '123456789'
];

// Supposer que c'est à travers PATCH Données de soumission demandées
$patchData = [
    'name' => 'John Smith',
    'phone' => '987654321'
];

2. Utilisez array_diff_assoc () pour comparer les données

Nous pouvons maintenant utiliser array_diff_assoc () pour détecter quels champs ont changé. array_diff_assoc () compare les clés et les valeurs de deux tableaux et renvoie ces différentes parties.

 // utiliser array_diff_assoc() Pour détecter le champ de changement
$changedFields = array_diff_assoc($patchData, $originalData);

// Champs de sortie changés
print_r($changedFields);

3. Gérer les champs modifiés

Le résultat renvoyé par array_diff_assoc () est un tableau contenant tous les champs qui ont changé. Vous pouvez effectuer des mises à jour en fonction de ces champs modifiés.

 if (!empty($changedFields)) {
    // Traitement des champs de modification,Par exemple, mettez à jour la base de données
    foreach ($changedFields as $key => $value) {
        // Effectuez l'opération de mise à jour de la base de données ici
        echo "Field $key has been changed to $value\n";
    }
} else {
    echo "No changes detected.\n";
}

4. Remplacement de l'URL

Si vous devez également traiter l'URL dans la demande, n'oubliez pas de remplacer le nom de domaine de l'URL par m66.net . Par exemple, si vous devez envoyer une demande à une URL, vous pouvez utiliser le code suivant: