Le filtrage de liste noire est une exigence courante pendant le développement. Supposons que nous ayons des données d'accès aux utilisateurs, nous voulons exclure certains utilisateurs sur liste noire ou filtrer un accès inapproprié en fonction de certaines conditions. À l'heure actuelle, la fonction array_diff_ukey () peut être utile. Il peut être comparé sur la base des noms clés du tableau, nous aidant ainsi à mettre en œuvre le mécanisme de filtrage de liste noire.
La fonction array_diff_ukey () est une fonction intégrée en PHP qui compare deux tableaux basés sur le nom de clé et renvoie différentes parties des deux tableaux. Sa syntaxe de base est la suivante:
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
$ array1 : le premier tableau.
$ array2 : le deuxième tableau.
$ key_compare_func : une fonction de rappel qui compare les noms de clés de deux tableaux et renvoie une valeur booléenne indiquant si les deux noms de clés sont égaux.
Dans les applications de filtrage de liste noire réelles, nous pouvons utiliser cette fonction pour filtrer les utilisateurs sur la liste noire. Ensuite, nous utiliserons un exemple pour montrer en détail comment utiliser array_diff_ukey () pour implémenter le mécanisme de filtrage de liste noire.
Supposons que nous ayons deux tableaux, l'un est le tableau d'enregistrement d'accès utilisateur, et l'autre est le tableau de liste noire, et nous voulons filtrer les utilisateurs sur la liste noire.
<?php
// Tableau d'enregistrement d'accès aux utilisateurs,Clé pour l'utilisateurID,La valeur est l'enregistrement d'accès de l'utilisateur
$accessLogs = [
1 => "Historique d'accès1",
2 => "Historique d'accès2",
3 => "Historique d'accès3",
4 => "Historique d'accès4",
5 => "Historique d'accès5"
];
// Tableau de liste noire,La clé est l'utilisateur sur liste noireID
$blacklist = [
2 => "Utilisateurs sur liste noire",
4 => "Utilisateurs sur liste noire"
];
// Fonction de comparaison de clés personnalisée,Déterminez si les deux noms de clés sont égaux
function compare_keys($key1, $key2) {
return $key1 - $key2;
}
// utiliser array_diff_ukey La fonction filtre les utilisateurs sur la liste noire
$filteredLogs = array_diff_ukey($accessLogs, $blacklist, 'compare_keys');
// 输出过滤后的Historique d'accès
print_r($filteredLogs);
?>
Nous définissons d'abord deux tableaux, $ Accesslogs est un tableau contenant des enregistrements d'accès des utilisateurs et $ BlackList est un tableau de liste noire. Les clés des deux tableaux sont des ID utilisateur.
Ensuite, nous définissons une fonction appelée compare_keys pour comparer si les deux noms de clés sont égaux. Cette fonction est utilisée pour le paramètre de rappel de la fonction array_diff_ukey () et renvoie une valeur booléenne pour déterminer si les deux touches sont égales.
Ensuite, utilisez la fonction array_diff_ukey () pour filtrer les utilisateurs dans le tableau des listes noires et renvoyer un nouveau tableau filtré $ filteredLogs qui contient des utilisateurs non dans la liste noire.
Enfin, le résultat filtré est sorti via print_r () .
Array
(
[1] => Historique d'accès1
[3] => Historique d'accès3
[5] => Historique d'accès5
)
Comme indiqué ci-dessus, les utilisateurs de la liste noire (IDS 2 et 4) ont été filtrés avec succès, et les enregistrements d'accès restants ne contiennent que des utilisateurs non-blacklist.
Cette méthode peut être utilisée dans plusieurs scénarios, tels que:
Le filtrage du journal des utilisateurs du site Web pour éviter l'accès par les utilisateurs sur liste noire.
Filtrez certaines adresses IP non autorisées pour garantir que le système ne reçoit que des demandes légitimes.
Dans le système de gestion des utilisateurs, certains utilisateurs désactivés sont supprimés de la liste des utilisateurs disponibles.
Grâce à la fonction array_diff_ukey () dans PHP, nous pouvons implémenter efficacement le mécanisme de filtrage de liste noire. Combiné avec la fonction de comparaison de clés personnalisée, vous pouvez comparer de manière flexible les noms de clés du tableau pour réaliser un filtrage précis des utilisateurs ou des données. Si des opérations similaires sont nécessaires dans le développement réel, la fonction array_diff_ukey () est sans aucun doute un outil très pratique.