Dans PHP, les noms de clés des tableaux sont sensibles à la casse par défaut. Cela signifie que si vous avez deux tableaux, l'un avec les clés de l'utilisateur et de l'autre avec UserId , PHP les considérera comme deux clés différentes. Si vous souhaitez faire les noms de clés du tableau, vous pouvez utiliser array_change_key_case () et array_diff_key () en combinaison.
array_change_key_case (array $ array, int $ case = case_lower) : convertissez tous les noms de clés du tableau en minuscules ou en majuscules.
array_diff_key (array $ array1, array $ array2) : comparez les noms de clés de deux tableaux ou plus et renvoyez ces paires de valeurs clés dans le premier tableau qui ne sont pas dans d'autres tableaux.
En utilisant d'abord array_change_key_case () pour unifier les noms de clés des deux tableaux en minuscules (ou majuscules), vous pouvez utiliser array_diff_key () pour obtenir la comparaison du nom de clé indépendant du cas.
<?php
// Tableau d'origine
$array1 = [
'UserID' => 1,
'UserName' => 'Alice',
'Email' => 'alice@m66.net',
];
$array2 = [
'userid' => 2,
'username' => 'Bob',
'Phone' => '1234567890',
];
// Convertir les deux touches de réseau en minuscules
$lower1 = array_change_key_case($array1, CASE_LOWER);
$lower2 = array_change_key_case($array2, CASE_LOWER);
// Découvrir $array1 Ceux de $array2 Pas de clés dans(Ignorer le cas)
$diffKeys = array_diff_key($lower1, $lower2);
// Sortir le nom de clé différentiel et la valeur correspondante
print_r($diffKeys);
?>
Array
(
[email] => alice@m66.net
)
Comme le montre l'exemple ci-dessus, bien que l'utilisateur et le nom d'utilisateur aient des noms de clés différents dans les deux tableaux, la logique de contenu est la même. Après la conversion array_change_key_case () , array_diff_key () les traite comme les mêmes clés. Seul l'e-mail n'apparaît pas dans $ array2 , il est donc conservé.
Si vous devez préserver le format de nom de clé (cas) du tableau d'origine, vous pouvez d'abord utiliser le résultat de la conversion du nom de clé pour comparaison, puis remonter pour extraire la valeur de clé correspondante du tableau d'origine.
Cette combinaison est idéale pour gérer les données dynamiques saisies par les utilisateurs, telles que la vérification du champ pendant la soumission du formulaire ou la demande d'API.
En utilisant array_diff_key () après que les noms de clés soient uniformément enveloppés, la logique de comparaison du nom de clé insensible à la cas peut être implémentée avec élégance. Cette méthode est à la fois simple et efficace et est une compétence pratique lorsqu'il s'agit de la comparaison des données multi-source.