Bonjour à toutes et tous,

Je lis la doc depuis un petit moment mais je n'ai pas les idées claires : Voilà ma question
Je dois comparer des tableaux entre eux ($activitesRecherchees, $activitesExclues et $activitesExercees).
Plusieurs cas se présentent:
Soit $activitesRecherchees et $activitesExercees ont au moins un élément en commun, je pense utiliser array_intersect()
si c'est vrai alors je compare le résultat avec $activitesExclues au moyen de in_array()

Soit il faut que tous les éléments de $activitesRecherchees soient présents dans $activitesExercees mais il peut y en avoir d'autres
je pense utiliser array_diff()

Soit il faut que tous les éléments de $activitesRecherchees soient TOUS présents dans $activitesExercees mais seulement ceux de $activitesRecherchees
je pense utiliser ... ben là je ne sais plus trop

J'aimerais votre avis et d'avance je vous remercie. D'autre part mes tableaux sont générés à partir de champs de base de données MySQL. Pensez vous qu'il soit possible d'obtenir les mêmes résultats en utilisant des requêtes ? laquelle des deux méthodes sera la plus performante ? Ci dessous mon code (il manque sûrement des accolades

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
if ( $resultat['demande_tout'] == 'off' AND $resultat['demande_seulement'] == 'off')
// Si une des activités demandées correspond à l'activité exercée
{
   if( array_intersect($activitesRecherchees, $activitesExercees) ) 
   {
      $new_array = array_intersect($activitesRecherchees, $activitesExercees);
      if ( array_intersect($new_array, $activitesExclues) ) 
      {
	...
      }
      else 
      {
       ...
       }
   }
 
		if ( $resultat['demande_tout'] == 'on' )
		// Si toutes les activités demandées sont exercées
		{
			if( array_diff($activitesRecherchees, $activitesExercees) )
                        { ... }
		}
		if ( $resultat['demande_seulement'] == 'on' )
		// Si toutes les activités demandées sont exercées et qu'il n'y en a pas d'autres
		{
			...
		}