ARRAY_INTERSECT_UKEY |
Tableau : Clef utilisateur associé |
PHP 5+ |
Syntaxe
function array_intersect_ukey($array1, $array2, $key_compare_func);
|
function array_intersect_ukey($array1, $array2, [...], $key_compare_func);
|
Paramètres
Nom |
Description |
$array1 |
Ce paramètre permet d'indiquer le premier tableau à comparer. |
$array2 |
Ce paramètre permet d'indiquer le deuxième tableau à comparer. |
$key_compare_func |
Ce paramètre permet d'indiquer une fonction devant appeler pendant la comparaison. Cette fonction devra retourner -1 (inférieur), 0 (égalité) ou 1 (supérieur). |
Retour
Valeur |
Description |
tableau |
Ce type de données permet d'indiquer la liste des éléments traités par l'intersection. |
Description
Cette fonction permet de retourner le résultat de l'intersection de tableau sous forme d'un tableau associatif en utilisant les clefs comme élément de comparaison à l'aide d'une fonction utilisateur.
Remarques
- Comparaison uniquement sur les clefs : Contrairement à array_intersect() ou array_intersect_assoc(), la fonction array_intersect_ukey() se
concentre uniquement sur les clefs des tableaux, en ignorant totalement les valeurs. Elle retourne un tableau contenant les éléments du premier tableau dont les clefs existent
également dans les autres tableaux, selon une comparaison définie par une fonction utilisateur.
- Fonction de rappel personnalisée pour les clefs : La spécificité de array_intersect_ukey() est l'utilisation d'une fonction de rappel personnalisée pour
comparer les clefs. Cette fonction doit retourner un entier (< 0, 0 ou > 0) pour indiquer si une clef est respectivement inférieure, égale ou supérieure à une autre. Cela permet
de personnaliser entièrement la logique de comparaison.
- Indépendance des valeurs : La fonction n'évalue pas les valeurs associées aux clefs. Même si les valeurs diffèrent entre les tableaux, cela n'a aucun impact sur le
résultat. Cela en fait une solution idéale lorsque seule la correspondance des clés est importante.
- Comparaison sensible aux types dans la fonction de rappel : La fonction de rappel est responsable de la logique de comparaison. Si la gestion des types est importante
(par exemple, faire la distinction entre une clef numérique et une clef chaîne de caractères), elle doit être explicitement gérée dans la fonction de comparaison.
- Préservation des clefs et des valeurs du tableau initial : Le tableau résultant conserve les clefs et les valeurs du premier tableau, sans réindexation. Les clefs du
premier tableau ne se retrouvant pas dans les autres tableaux sont simplement exclues du résultat.
- Utilisation pour des opérations avancées : array_intersect_ukey() est utile lorsque la logique de correspondance des clefs nécessite des règles complexes, comme
l'ignorance de la casse (strcasecmp) ou la gestion de formats spécifiques (par exemple, des identifiants avec des préfixes ou suffixes).
- Performance affectée par la fonction de rappel : L'utilisation d'une fonction utilisateur peut affecter les performances pour des tableaux volumineux, car chaque
clef doit être passée à la fonction de rappel pour comparaison. Une fonction de rappel mal optimisée peut aggraver ce problème.
- Limitations avec les tableaux multidimensionnels : Comme avec les autres fonctions d'intersection, array_intersect_ukey() ne traite que les clefs du niveau
supérieur et ne prend pas en charge les comparaisons récursives. Si des tableaux imbriqués sont utilisés comme clefs, un traitement manuel ou une fonction personnalisée sera
nécessaire.
Dernière mise à jour : Dimanche, le 22 mars 2015