Position actuelle: Accueil> Derniers articles> Utilisez Array_Diff_assoc () pour rendre le jugement de retour de la configuration avant et après

Utilisez Array_Diff_assoc () pour rendre le jugement de retour de la configuration avant et après

M66 2025-05-17

Dans PHP, nous devons souvent verser le contrôle ou la relance du fichier de configuration. Lorsque le fichier de configuration change, nous voulons peut-être être en mesure de comparer les différences entre les anciens et les nouveaux fichiers de configuration et juger si le Rollback est nécessaire en fonction de cela. array_diff_assoc () est une fonction très utile qui peut nous aider à implémenter cette fonction.

1. Présentation de la fonction array_diff_assoc ()

array_diff_assoc () est une fonction utilisée dans PHP pour comparer deux tableaux. Il compare non seulement les valeurs du tableau, mais compare également les clés du tableau. Cette fonction renvoie un nouveau tableau contenant des éléments dans le premier tableau qui ne correspond pas à la deuxième paire de valeurs clés du tableau.

La syntaxe est la suivante:

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

  • $ array2 : le deuxième tableau.

La valeur de retour est un tableau contenant tous les éléments dans $ array1 et $ array2 key wect paires.

2. Comment utiliser array_diff_assoc () pour déterminer si la configuration doit être annulée

Supposons que nous ayons deux fichiers de configuration, l'un est la version actuelle du fichier de configuration (nouvelle configuration) et l'autre est le fichier de configuration précédent (ancienne configuration). Nous pouvons savoir si nous devons revenir à l'ancienne configuration en comparant les différences entre ces deux fichiers de configuration.

Voici un processus de mise en œuvre simple:

 <?php

// Nouvelle configuration(Supposons que ce soit la configuration actuelle)
$current_config = [
    'site_name' => 'MySite',
    'theme' => 'dark',
    'timezone' => 'UTC+8',
    'debug' => true
];

// Ancienne configuration(Assumer une configuration de sauvegarde)
$backup_config = [
    'site_name' => 'MySite',
    'theme' => 'light',  // Ancienne configuration的主题
    'timezone' => 'UTC+8',
    'debug' => false  // Ancienne configuration的debugmodèle
];

// 比较Nouvelle configuration与Ancienne configuration的差异
$diff = array_diff_assoc($current_config, $backup_config);

// Si la différence retournée n&#39;est pas vide,Indique que le fichier de configuration a changé
if (!empty($diff)) {
    echo "Modifications du fichier de configuration,La différence est la suivante:\n";
    print_r($diff);
    // Ici, nous pouvons en outre déterminer si le retour en arrière est requis
    echo "需要回滚到Ancienne configuration。\n";
} else {
    echo "Le fichier de configuration n&#39;a pas changé。\n";
}

?>

3. Code d'analyse

  1. Fichier de configuration de définition : nous définissons deux tableaux, l'un est la configuration actuelle $ current_config et l'autre est la configuration de sauvegarde $ backup_config .

  2. Appelez Array_Diff_assoc () : Nous utilisons Array_Diff_assoc () pour comparer les différences entre ces deux fichiers de configuration.

  3. Jugez la différence : si le tableau Diff renvoyé $ Diff n'est pas vide, cela signifie qu'il existe une différence entre le fichier de configuration actuel et le fichier de configuration de sauvegarde, et nous pouvons décider si nous devons revenir à l'ancienne configuration.

4. Exemple de résultat de sortie

Après avoir exécuté le code ci-dessus, la différence de sortie sera affichée comme suit:

 Modifications du fichier de configuration,La différence est la suivante:
Array
(
    [theme] => dark
    [debug] => 1
)
需要回滚到Ancienne configuration。

Cela signifie que les valeurs du thème et du débogage diffèrent dans les anciens et nouveaux fichiers de configuration, donc un retour en arrière est requis.

5. Opération en arrière

Dans les applications pratiques, lorsque nous détectons les différences dans les fichiers de configuration, nous pouvons revenir en rétabli en restaurant les anciens fichiers de configuration. Par exemple, vous pouvez réécrire le contenu dans $ backup_config dans le fichier de configuration, ou restaurer les informations de configuration dans la base de données dans une ancienne version.

 file_put_contents('config.php', '<?php return ' . var_export($backup_config, true) . ';');
echo "Le fichier de configuration a été annulé。\n";

6. Résumé

Grâce à la fonction Array_Diff_assoc () , nous pouvons facilement comparer les différences entre les deux fichiers de configuration et revenir si nécessaire. Cette méthode peut être largement utilisée dans divers scénarios, en particulier lorsque nous devons assurer la cohérence des fichiers de configuration.

Lectures connexes