Position actuelle: Accueil> Derniers articles> Utilisez array_diff_uassoc () pour implémenter le contrôle de la version Array

Utilisez array_diff_uassoc () pour implémenter le contrôle de la version Array

M66 2025-06-06

Dans PHP, array_diff_uassoc () est une fonction très utile qui peut être utilisée pour comparer les clés et les valeurs de deux tableaux et renvoyer les différences dans les deux tableaux. Nous pouvons utiliser cette fonction pour implémenter une fonction de contrôle de version simple de tableau qui suit les modifications des tableaux entre différentes versions, en particulier lorsque les clés et les valeurs du tableau doivent être prises en compte en même temps.

Introduction à la fonction array_diff_uassoc ()

La fonction array_diff_uassoc () est utilisée pour comparer deux tableaux et renvoie un tableau contenant des paires de valeurs clés dans le premier tableau mais pas dans le deuxième tableau. Contrairement à d'autres fonctions de comparaison, il vous permet de fournir une fonction de rappel personnalisée pour comparer les clés aux tableaux.

Prototype de fonction:

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

  • $ array2 : le deuxième tableau.

  • $ key_compare_func : La fonction de rappel qui compare les touches de tableau doit renvoyer une valeur entière pour déterminer la relation entre deux clés.

Comment implémenter le contrôle de la version Array

Le versioning nécessite généralement l'enregistrement des différences dans chaque version. Nous pouvons utiliser la fonction array_diff_uassoc () pour découvrir les changements dans les tableaux entre différentes versions. Par exemple, supposons que nous ayons un tableau qui enregistre les propriétés de différentes versions d'un produit, et nous voulons être en mesure de visualiser les différences entre les différentes versions.

Échantillon de scénario

Supposons que nous ayons deux versions du tableau d'attribut de produit, les version 1 et la version 2. La version 1 contient des informations de base sur le produit, tandis que la version 2 contient des propriétés mises à jour et des éléments supprimés. Nous voulons découvrir ces différences pour la gestion des versions.

 <?php
// Version1:Tableau d&#39;attribut de produit initial
$version1 = [
    'name' => 'produitA',
    'price' => 100,
    'color' => 'red',
    'size' => 'M'
];

// Version2:更新后的produit属性数组
$version2 = [
    'name' => 'produitA',
    'price' => 120, // Mise à jour des prix
    'color' => 'blue', // Mise à jour des couleurs
    'material' => 'cotton' // Attributs ajoutés
];

// 比较Version1和Version2La différence
$diff = array_diff_uassoc($version2, $version1, function($key1, $key2) {
    return strcmp($key1, $key2); // Clé de comparaison
});

echo "<pre>";
print_r($diff); // 输出Version2Pièces nouvellement ajoutées ou modifiées
echo "</pre>";
?>

expliquer:

  1. Les version 1 et la version 2 sont deux versions différentes des tableaux d'attributs de produits.

  2. array_diff_uassoc () est utilisé pour comparer les clés et les valeurs de deux tableaux. Nous passons une fonction de comparaison de clés personnalisée STRCMP pour comparer l'ordre des clés du dictionnaire.

  3. Grâce à cette fonction, nous pouvons obtenir des propriétés nouvelles ou modifiées (telles que le prix et la couleur ) dans la version 2, qui sont les "différences" de notre contrôle de version.

résultat:

 Array
(
    [price] => 120
    [color] => blue
    [material] => cotton
)

Dans ce résultat, array_diff_uassoc () renvoie les propriétés nouvellement ajoutées ou modifiées dans la version 2. De cette manière, nous pouvons utiliser cette méthode pour suivre les modifications des tableaux entre différentes versions, réalisant ainsi un contrôle de version simple des tableaux.

Conclusion

La fonction array_diff_uassoc () est un outil très puissant dans le contrôle de version des tableaux. Grâce à la méthode de comparaison des clés personnalisée, nous pouvons contrôler avec précision la méthode de comparaison pour répondre à divers besoins de contrôle de version. Pour une gestion de version plus complexe, une logique plus complexe peut être implémentée en combinaison avec d'autres fonctions PHP, mais cela nous a fourni un bon point de départ.

Liens connexes