Dans PHP, array_diff_ukey () est une fonction très utile qui peut être utilisée pour comparer les différences de noms de clés de deux tableaux. Contrairement à la fonction Array_Diff () qui ne compare que les valeurs d'un tableau, array_diff_ukey () nous permet de comparer les clés d'un tableau via une fonction de comparaison personnalisée. Cette fonction est très adaptée aux scénarios où les tableaux multidimensionnels sont traités ou où les noms de clés doivent être comparés en fonction des règles complexes.
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 deux touches. Si la valeur de retour est inférieure à 0, cela signifie que la clé de $ array1 est inférieure à la clé de $ array2 ; Si la valeur de retour est supérieure à 0, cela signifie que la clé de $ array1 est supérieure à la clé de $ array2 ; Si la valeur de retour est égale à 0, cela signifie que les deux clés sont égales.
Renvoie un tableau contenant le nom de clé et la valeur des éléments dans $ array1 mais pas dans $ array2 .
Voici un exemple simple utilisant array_diff_ukey () pour comparer les différences de nom de clé entre deux tableaux:
<?php
// Le premier tableau
$array1 = [
'apple' => 100,
'banana' => 200,
'orange' => 300,
];
// Le deuxième tableau
$array2 = [
'banana' => 200,
'grape' => 400,
'kiwi' => 500,
];
// Fonction de comparaison de clés personnalisée
function compare_keys($key1, $key2) {
return strcmp($key1, $key2); // Comparez les noms de clés à l'aide de la chaîne
}
// utiliser array_diff_ukey Comparaison des différences de noms clés de deux tableaux
$result = array_diff_ukey($array1, $array2, 'compare_keys');
// Résultats d'impression
print_r($result);
?>
Array
(
[apple] => 100
[orange] => 300
)
Dans l'exemple ci-dessus, la fonction array_diff_ukey () comparera les noms de clés des deux arrays $ array1 et $ array2 . Dans cet exemple, les clés «pomme» et «orange» dans $ array1 n'existent pas dans $ array2 , donc elles sont conservées dans le résultat retourné. La clé «banane» est incluse dans les deux tableaux, il est donc exclu.
array_diff_ukey () est très adapté aux scénarios suivants:
Comparaison personnalisée des noms de clés : array_diff_ukey () fournit des fonctions puissantes lorsque vous devez comparer les clés d'un tableau basé sur des règles personnalisées (telles que le cas, l'ordre des caractères, etc.).
Traitement des tableaux multidimensionnels : Si votre tableau est multidimensionnel et ne doit comparer que les noms de clés sans se soucier des valeurs, vous pouvez utiliser array_diff_ukey () pour le gérer.
Supposons que nous devons comparer les clés de deux tableaux d'URL et que nous voulons comparer la partie du domaine principal de l'URL. Vous pouvez extraire le nom de domaine principal de l'URL via la fonction parse_url () , puis utiliser une fonction de comparaison personnalisée pour comparer.