Dans PHP, array_diff_ukey () est une fonction très pratique qui compare les "noms de clés" de deux tableaux ou plus et renvoie des éléments de ceux du premier tableau.
Habituellement, cette fonction utilise une fonction de rappel pour personnaliser la façon dont les noms de clés sont comparés. Cependant, la comparaison par défaut du nom de clé est sensible à la casse, c'est-à-dire que «la clé» et la «clé» seront considérées comme deux noms de clés différents.
Mais que se passe-t-il si nous voulons ignorer le cas de comparaison (c'est-à-dire que «clé» et «clé» sont considérées comme les mêmes clés)? La réponse est d'utiliser une fonction de rappel personnalisée pour implémenter la logique de comparaison insensible à la casse.
Voici un exemple montrant comment utiliser array_diff_ukey () et une fonction de rappel pour ignorer le cas lors de la comparaison des noms de clés:
<?php
$array1 = [
"UserID" => 1,
"Email" => "user1@m66.net",
"Name" => "Alice"
];
$array2 = [
"userid" => 2,
"email" => "user2@m66.net"
];
// Fonctions de comparaison personnalisées:Ignorer la comparaison des cas
function compareKeysCaseInsensitive($key1, $key2) {
return strcasecmp($key1, $key2); // retour0Indique l'égalité
}
$result = array_diff_ukey($array1, $array2, "compareKeysCaseInsensitive");
print_r($result);
Array
(
[Name] => Alice
)
Comme indiqué ci-dessus, bien qu'il y ait un utilisateur et un e-mail dans $ array1 , car il y a un utilisateur et un e-mail dans $ array2 , ils sont égaux après ignorer le cas et sont donc exclus du résultat.
En fin de compte, seul le nom est laissé car il n'a pas d'élément qui a "le nom de clé égal (ignorer le cas)".
Si vous devez comparer les noms de clés lors du traitement des tableaux mais que vous souhaitez ignorer les différences de cas , array_diff_ukey () avec strcasecmp () est une combinaison très concise et puissante:
Utilisez array_diff_ukey () pour comparer les noms de clés
Utilisez Strcasecmp () comme fonction de rappel pour implémenter la logique de comparaison insensible à la casse
Ceci est particulièrement utile lors de la gestion des entrées des utilisateurs, des noms de champ de base de données ou des données qui peuvent différer dans le cas mais est cohérente sémantique.
J'espère que cet article vous est utile de comprendre et d'utiliser des fonctions PHP Array!