ARRAY_INTERSECT |
Tableau : Intersection |
PHP 4.0.1+ |
Syntaxe
function array_intersect($array1, $array2);
|
function array_intersect($array1, $array2, [...]);
|
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. |
... |
Ce paramètre permet d'indiquer un ou plusieurs tableau à comparer. |
Retour
Valeur |
Description |
tableau |
Ce type de données permet d'indiquer le résultat de l'intersection |
Description
Cette fonction permet de retourner le résultat de l'intersection de tableau sous forme d'un tableau.
Remarques
- Retourne les éléments communs : La fonction array_intersect() compare les valeurs de plusieurs tableaux et retourne un tableau contenant les
éléments présents dans tous les tableaux donnés. Elle se base uniquement sur les valeurs des éléments et ignore les clés. Cela permet de trouver les éléments partagés entre
différents ensembles de données.
- Comparaison stricte des valeurs : Par défaut, array_intersect() effectue une comparaison stricte des valeurs en tenant compte à la fois de leur type et de
leur valeur. Cela signifie qu'une valeur entière 1 ne sera pas considérée comme égale à une valeur chaîne "1". Si une comparaison plus souple est souhaitée, il faut utiliser une autre
fonction comme array_intersect_assoc().
- Fonctionnement avec plusieurs tableaux : array_intersect() accepte un nombre variable de tableaux comme paramètres. Chaque tableau supplémentaire sera
comparé au premier tableau fourni. Seules les valeurs apparaissant dans tous les tableaux seront incluses dans le résultat.
- Non-pertinence des clefs : Contrairement à certaines autres fonctions de comparaison de tableaux, array_intersect() ne tient pas compte des clefs des
éléments. Si plusieurs tableaux contiennent la même valeur, peu importe qu'ils aient des clefs différentes, tant que les valeurs sont identiques, elles seront incluses dans
le résultat.
- Limites avec les tableaux multidimensionnels : array_intersect() ne compare pas les tableaux multidimensionnels de manière récursive. Cela signifie que si
un tableau contient des sous-tableaux, ces sous-tableaux ne seront pas comparés en profondeur. Pour une comparaison plus complexe, une approche personnalisée ou une fonction
comme array_intersect_recursive() pourrait être nécessaire.
- Impact de la performance : Lors de l'utilisation de array_intersect() avec de très grands tableaux, la performance peut être un facteur limitant. La
fonction parcourt chaque élément des tableaux pour effectuer les comparaisons, ce qui peut être coûteux en termes de mémoire et de temps d'exécution lorsque les tableaux sont
volumineux.
- Gestion des doublons : array_intersect() conserve les doublons de valeurs dans les tableaux d'entrée, mais dans le tableau de sortie, chaque valeur ne
peut apparaître qu'une seule fois. Les éléments identiques dans plusieurs tableaux seront présents une seule fois dans le tableau résultant, même si leur fréquence dans les
tableaux d'entrée est plus élevée.
- Utilisation dans des contextes pratiques : array_intersect() est très utile dans des situations où l'on souhaite trouver des valeurs communes dans
plusieurs ensembles de données. Par exemple, elle peut être utilisée pour filtrer les résultats de recherches dans plusieurs catégories, ou pour comparer des listes de
permissions, de produits, ou de mots-clefs dans différents systèmes.
Références
PHP 4 - Guide du développeur, Edition First Interactive, Blake Schwendiman, 2002, ISBN: 2-84427-283-5, page 359
Dernière mise à jour : Dimanche, le 22 mars 2015