Parfois, on oublie que certaines fonctions PHP très utiles existent…

Pour un dossier en cours, j’ai mis en place un filtre avec différentes boites de sélection : par langue, âge, ville, etc. Comme je ne peux pas faire une seule requête globale pour récupérer le résultat, je suis contraint d’effectuer une requête par filtre utilisé et de calculer l’intersection des tableaux de résultat grâce à la fonction PHP array_intersect(); Cette dernière accepte un nombre variable de paramètres, ce qui est très pratique ici, car j’ai plusieurs tableaux à comparer. Le problème, cependant, est que je ne sais pas à l’avance combien de variables je vais lui passer, car je ne sais pas si l’utilisateur va utiliser 1, 2, 3, 4 ou 5 filtres à la fois.

Après m’être arraché les cheveux quelques minutes, je suis allé demander assistance à mon ami Google et je suis tombé sur LA solution toute simple, utilisant une fonction basique dont j’avais totalement oublié l’existence à force de ne l’avoir jamais utilisée :

$wrkArray = array( $userArray1,
                   $userArray2,
                   $userArray3
                 );
$result = call_user_func_array('array_intersect',$wrkArray);

Plus qu’à mettre en place les conditions nécessaires pour remplir le tableau $wrkArray et roulez jeunesse !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Bonjour, comment puis-je vous aider ?