Position actuelle: Accueil> Derniers articles> Comparaison et détection des paramètres de préférence des utilisateurs

Comparaison et détection des paramètres de préférence des utilisateurs

M66 2025-06-06

Dans le développement Web, les préférences des utilisateurs sont un besoin courant d'applications, en particulier dans les plateformes sociales ou les sites Web de commerce électronique. Les utilisateurs peuvent généralement ajuster les fonctions, l'interface ou les paramètres de notification de l'application en fonction de leurs besoins. Lorsque les utilisateurs mettent à jour leurs préférences, les développeurs ont besoin d'un moyen de détecter les différences entre les paramètres anciens et nouveaux afin d'enregistrer les modifications, d'analyser le comportement des utilisateurs ou de fournir une référence pour les opérations ultérieures.

Dans PHP, la fonction Array_Diff_assoc est un outil très pratique pour comparer deux tableaux et retourner leurs différences. Cette fonction compare non seulement les valeurs du tableau, mais vérifie également si les clés du tableau correspondent. Par conséquent, Array_Diff_assoc peut nous aider efficacement à détecter les différences dans les paramètres de préférence des utilisateurs avant et après les mises à jour.

1. Utilisation de base de la fonction Array_Diff_assoc

La fonction de la fonction Array_Diff_assoc est de renvoyer un tableau contenant des paires de valeurs clés qui sont dans le premier tableau mais pas dans le deuxième tableau. Contrairement à Array_Diff , Array_Diff_assoc compare non seulement les valeurs, mais considère également les différences de clés.

Prototype de fonction:

 array_diff_assoc(array $array1, array $array2) : array
  • $ array1 : le premier tableau à comparer.

  • $ array2 : le deuxième tableau qui doit être comparé.

La fonction renvoie un nouveau tableau contenant des paires de valeurs clés qui existent dans $ array1 et non dans $ array2 . Si les deux tableaux sont les mêmes sur les valeurs ou les clés, aucune différence n'est renvoyée.

2. Utilisez Array_Diff_assoc pour détecter les différences de préférence des utilisateurs

Supposons que nous ayons les anciennes préférences d'un utilisateur et les nouvelles préférences dans l'application, voici un exemple simple:

Anciens paramètres ( $ oldsettings ):

 $oldSettings = [
    'theme' => 'dark',
    'notifications' => true,
    'language' => 'en'
];

Nouveaux paramètres ( $ Newsettings ):

 $newSettings = [
    'theme' => 'light',
    'notifications' => false,
    'language' => 'fr'
];

Nous pouvons utiliser la fonction array_diff_assoc pour comparer les différences entre ces deux paramètres Arrays:

 $differences = array_diff_assoc($oldSettings, $newSettings);
print_r($differences);

Résultat de sortie:

 Array
(
    [theme] => dark
    [notifications] => 1
    [language] => en
)

3. Analyse des résultats

Le code ci-dessus renvoie un tableau contenant des paires de valeurs clés qui existent dans $ oldsettings mais pas dans $ Newsettings . Avec ces informations, nous pouvons clairement voir quelles préférences ont changé.

  • Le thème est passé de «Dark» à «Light» .

  • Les notifications sont passées de vraie à false .

  • La langue est passée de «en» à «fr» .

4. Scénario d'application pratique: modifications des paramètres de préférence d'enregistrement

Supposons que nous voulons enregistrer des changements dans les préférences des utilisateurs pour une analyse ultérieure ou pour la génération de rapports de comportement des utilisateurs. La différence d'informations peut être stockée dans la base de données ou un journal de modification peut être généré. Le code est le suivant:

 $differences = array_diff_assoc($oldSettings, $newSettings);

if (!empty($differences)) {
    // Supposons que nous ayons une fonction de journalisation pour enregistrer les modifications des paramètres de préférence des utilisateurs
    logPreferenceChange($userId, $differences);
}

function logPreferenceChange($userId, $changes) {
    // Supposons que les changements sont stockés d'une manière ou d'une autre
    echo "utilisateur {$userId} Les préférences ont changé:\n";
    print_r($changes);
}

5. Scénarios plus complexes: comparaison des données d'URL

Dans certains scénarios, les préférences des utilisateurs peuvent impliquer des liens URL. Supposons que nous ayons les champs URL suivants qui doivent être comparés:

URL dans les anciens paramètres:

 $oldSettings = [
    'profile_url' => 'https://oldsite.com/user/profile',
    'dashboard_url' => 'https://oldsite.com/user/dashboard'
];

URL dans de nouveaux paramètres:

 $newSettings = [
    'profile_url' => 'https://newsite.com/user/profile',
    'dashboard_url' => 'https://newsite.com/user/dashboard'
];

Nous pouvons remplacer la partie de nom de domaine URL dans les anciens et nouveaux paramètres par un nom de domaine unifié, tel que m66.net , pour éviter une erreur de jugement causée par différents noms de domaine. Ce qui suit est le code d'implémentation: