fonction eval php marche pas :(

WRInaute accro
Bonjour,

J'ai besoin d'utiliser la fonction eval en php pour résoudre mon problème mais je bloque parce que le résultat escompté n'est pas bon :(
Je m'explique....
Je dois vérifier dynamiquement que 2 valeurs soient présentes dans un array. Par contre merci de ne pas me conseiller de le faire directement dans le code source genre :
QUESTION :
"Pourquoi ne pas mettre in_array(tavaleur1,Array()) && in_array(tavaleur2,Array())?"
REPONSE : "non, parce que c'est valable pour une recherche de 2 valeurs mais aussi bien sur plusieurs! D'où l'avantage de créer une boucle qui va concaténer les conditions! héhéhé j'ai répondu en avance ! loool !"
Bon revenons à nos moutons !
Voilà ma boucle:
Code:
$monCouple = explode(":",$f);
   //initialiser
   $ope = "";
   for($i=0;$i<count($monCouple);$i++){
      $ope .= " in_array($monCouple[$i],$array_id) &&";
         if($i+1 == count($monCouple)){
            $operateur = substr($ope,0,-2);
            if(eval("\"$operateur\";")){
               array_push($famille_couple,$f);
               //echo $operateur;
             }
             else{
                echo $f.' = '.$operateur.'<br />';
              }
           }
        }

pour mes tests, j'ai mis un "echo $operateur;" afin de voir si la construction de ma variable "$operateur" était bonne et elle est ! Pas de problème syntaxique avec l'utilisation de "eval()"! Il me met aucune erreur !
Voici le type de résultat qu'il me sort en faisant un echo sur la variable "$operateur"
Code:
in_array(1,Array) && in_array(5,Array)

C'est là où je suis ennuyé parce que je n'ai pas d'erreurs mais en faisant des tests avec des valeurs existantes dans mon Array principal et il ne passe absolument pas dans ma condition positive !

Est-ce un problème de "cast" parce que je passe d'une chaine string transformée en condition?
Enfin, je ne vois pas là?

Merci de votre aide !
 
WRInaute accro
Je comprend pas pourquoi tu as besoin de ça, mais à tout hasard est-ce que serialize/unserialize ne conviendrait pas mieux ?
 
WRInaute discret
Salut, je comprends pas bien non plus ce que tu veux faire, mais

Code:
$notFound = false;
for($i=0;$i<count($monCouple);$i++)
{
  if (!in_array($monCouple[$i],$array_id)
  {
      //ici tu fais ce que tu veux si tu n as pasce que tu cherches dans  array_id
     $notFound = true;
      break;
  }
}

if (!$notFound)
{
  //fais un truc
}
else
{
  //fais autre chose
}

a l air de faire dans l idee ce que je pense que tu essaies de faire :)
 
Discussions similaires
Haut