Position actuelle: Accueil> Derniers articles> Comment comparer les clés du tableau à l'aide de Array_Diff_ukey ()

Comment comparer les clés du tableau à l'aide de Array_Diff_ukey ()

M66 2025-06-06

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.

grammaire

 array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array

Description du paramètre:

  • $ 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.

Valeur de retour:

Renvoie un tableau contenant le nom de clé et la valeur des éléments dans $ array1 mais pas dans $ array2 .

Exemple

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&#39;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&#39;impression
print_r($result);
?>

Résultat de sortie:

 Array
(
    [apple] => 100
    [orange] => 300
)

expliquer

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.

Scénarios applicables

array_diff_ukey () est très adapté aux scénarios suivants:

  1. 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.).

  2. 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.

Application avancée

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.