Dans PHP, la fonction array_diff_ukey () est utilisée pour comparer les clés de deux tableaux ou plus et des éléments de retour qui sont différents de ceux des autres tableaux. Cette fonction est très utile, surtout si nous devons comparer les clés d'un tableau via des règles personnalisées. La fonction array_diff_ukey () nous permet de spécifier une fonction de rappel pour personnaliser les règles de comparaison des clés. Cet article présentera comment utiliser correctement la fonction Array_Diff_ukey () et affichera comment utiliser une fonction de rappel personnalisée pour comparer les touches.
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
Array1 : Le premier tableau, utilisé pour la comparaison.
Array2 : Le deuxième tableau, d'autres tableaux peuvent également être transmis en tant qu'objets de comparaison.
key_compare_func : une fonction de rappel pour personnaliser les règles de comparaison des clés. Cette fonction prend deux paramètres, représente les touches en deux tableaux et renvoie une valeur entière:
Si la première touche est plus petite que la deuxième touche, une valeur négative est renvoyée.
Si la première clé est supérieure à la deuxième clé, une valeur positive est renvoyée.
Si les deux clés sont égales, retournez zéro.
Tout d'abord, regardons un exemple simple pour comprendre l'utilisation de base de la fonction array_diff_ukey () .
<?php
$array1 = [
1 => 'apple',
2 => 'banana',
3 => 'cherry',
];
$array2 = [
3 => 'cherry',
4 => 'date',
];
$result = array_diff_ukey($array1, $array2, function($key1, $key2) {
return $key1 - $key2;
});
print_r($result);
?>
Résultat de sortie:
Array
(
[1] => apple
[2] => banana
)
Dans cet exemple, nous comparons les clés dans Array1 et Array2 et Filtrons en fonction des règles de la fonction de rappel. Étant donné que Key1 et Key2 sont des clés numériques et que nous choisissons d'utiliser la règle de comparaison numérique par défaut, nous renvoyons enfin les éléments correspondant aux touches non dans Array2 .
La puissance de la fonction array_diff_ukey () est que vous pouvez modifier la façon dont les clés sont comparées en personnalisant la fonction de rappel. Les fonctions de rappel peuvent être comparées sur la base de différentes conditions, telles que l'ordre alphabétique, par taille numérique ou selon d'autres règles métier.
Supposons que nous ayons deux tableaux et que nous voulions comparer les clés en fonction de l'ordre alphabétique:
<?php
$array1 = [
'apple' => 'fruit1',
'banana' => 'fruit2',
'cherry' => 'fruit3',
];
$array2 = [
'cherry' => 'fruit3',
'date' => 'fruit4',
];
$result = array_diff_ukey($array1, $array2, function($key1, $key2) {
return strcmp($key1, $key2);
});
print_r($result);
?>
Résultat de sortie:
Array
(
[apple] => fruit1
[banana] => fruit2
)
Dans cet exemple, nous utilisons la fonction strcmp () pour comparer les clés du tableau ( «pomme» , «banane» , etc.). La fonction strcmp () compare les chaînes de manière alphabétique et la valeur de retour détermine l'ordre et l'égalité des deux clés.
Nous pouvons également comparer la taille de la clé en fonction de la longueur de la clé:
<?php
$array1 = [
'a' => 'apple',
'banana' => 'fruit',
'cherry' => 'berry',
];
$array2 = [
'cherry' => 'fruit',
'date' => 'sweet',
];
$result = array_diff_ukey($array1, $array2, function($key1, $key2) {
return strlen($key1) - strlen($key2);
});
print_r($result);
?>
Résultat de sortie:
Array
(
[banana] => fruit
)
Dans cet exemple, nous utilisons la fonction strlen () pour comparer la longueur de la clé. De cette façon, certaines règles de comparaison personnalisées plus complexes peuvent être mises en œuvre.
Grâce à la fonction array_diff_ukey () , vous pouvez comparer de manière flexible les clés d'un tableau et utiliser la fonction de rappel pour définir vos propres règles de comparaison. Cela rend les opérations de tableau plus flexibles et puissantes, et peut gérer divers scénarios complexes.