Position actuelle: Accueil> Derniers articles> Utilisez array_flip () pour implémenter la cartographie rapide des identifiants d'autorisation aux noms d'autorisation

Utilisez array_flip () pour implémenter la cartographie rapide des identifiants d'autorisation aux noms d'autorisation

M66 2025-06-03

Lors du développement de systèmes de gestion de l'autorisation, nous devons souvent convertir entre les données d'autorisation dans différents formats. Par exemple, les identificateurs d'autorisation sont stockés dans la base de données (tels que View_user , Edit_Post ), mais des noms d'autorisation plus conviviaux sont requis lors de l'affichage de l'interface (tel que "View User" et "Edit Article").

Si vous maintenez un tableau de mappage d'autorisation, la fonction array_flip () dans PHP peut vous aider à implémenter rapidement le mappage inversé des identifiants aux noms d'autorisation. Cet article parlera de son utilisation et de ses précautions.

1. Structure de base de la cartographie des autorisations

En règle générale, nous définissons un tableau de noms d'autorisation aux identifiants d'autorisation, par exemple:

 $permissions = [
    'Afficher les utilisateurs' => 'view_user',
    'Modifier l'utilisateur' => 'edit_user',
    'Supprimer les utilisateurs' => 'delete_user',
    'Publier un article' => 'publish_post',
    'Modifier l'article' => 'edit_post',
];

Cette structure convient pour rendre des options déroulantes ou cocher des cases sur l'interface utilisateur, mais si le système obtient un identifiant (par exemple, l'API renvoie Edit_Post ), comment pouvons-nous trouver rapidement le nom chinois correspondant?

2. Utilisez array_flip () pour implémenter le mappage inversé

Array_flip () de PHP peut combiner les clés et les valeurs d'un tableau, il est donc très facile de créer une table de mappage de l'identifiant d'autorisation au nom de l'autorisation:

 $codeToName = array_flip($permissions);

À l'heure actuelle, la structure de $ Codetoname devient:

 [
    'view_user' => 'Afficher les utilisateurs',
    'edit_user' => 'Modifier l'utilisateur',
    'delete_user' => 'Supprimer les utilisateurs',
    'publish_post' => 'Publier un article',
    'edit_post' => 'Modifier l'article',
]

Ensuite, vous pouvez rapidement obtenir le nom correspondant via l'identifiant d'autorisation:

 $code = 'edit_post';
echo $codeToName[$code]; // Sortir:Modifier l'article

3. Combiné avec des scénarios d'application pratiques

Supposons que vous ayez une interface de vérification d'autorisation qui renvoie un tableau d'identifiants d'autorisation:

 $userPermissions = ['view_user', 'edit_post'];

Vous souhaitez afficher les noms chinois de ces autorisations dans l'interface frontale, vous pouvez le faire:

 $permissionNames = array_map(function($code) use ($codeToName) {
    return $codeToName[$code] ?? 'Autorisations inconnues';
}, $userPermissions);

print_r($permissionNames);

Le résultat de la sortie est:

 Array
(
    [0] => Afficher les utilisateurs
    [1] => Modifier l'article
)

4. Choses à noter

  1. Les valeurs ne peuvent pas être répétées : array_flip () nécessite que la valeur du tableau d'origine ne peut pas être répétée, sinon les éléments suivants écraseront le précédent. Par exemple:

     $arr = ['A' => 'x', 'B' => 'x'];
    var_dump(array_flip($arr)); // Conserver uniquement 'x' => 'B'
    
  2. Convient pour la cartographie statique : array_flip () convient généralement aux systèmes avec une structure d'autorisation relativement fixe. Si les autorisations sont générées dynamiquement au moment de l'exécution, il est recommandé d'utiliser une base de données ou un schéma de cache pour gérer le mappage inversé.

  3. Combiné avec le cache pour améliorer les performances : si les données d'autorisation proviennent d'une base de données ou d'un fichier de configuration, la relation de mappage peut être mise en cache pour réduire la surcharge de chaque demande de page.

5. Résumé

L'utilisation de array_flip () est une méthode simple, rapide et efficace adaptée à la conversion mutuelle de "Nom d'autorisation d'autorisation? Dans les systèmes d'autorisation. Surtout lorsque l'on traite de l'affichage ou de la journalisation de l'interface, l'efficacité de développement et la lisibilité du code peuvent être considérablement améliorées.

Si vous développez un système d'autorisation basé sur PHP, essayez d'appliquer Array_flip () à votre logique de cartographie et profitez de la commodité qu'il apporte!