exircices bete et marrant

Invité
Invité n'ayant pas de compte PHPfrance

05 nov. 2008, 19:17

hello,

j'ai un probleme bete et avant de me lancer dans un code d'une 20aine de ligne me suis dit que ca pourrait etre intéressant de poser le probleme ici.

j'ai 3 variables : var1 , var2 , var3
ces variables sont soient vide soit contient une chaine.

j'ai besoin de savoir si 2 variables (ou bien les 3 valent la meme choses), sachant que si c'est vide ca ne compte pas.

suis obligé de tester les 3 variables les unes apres les autres, ou bien y a t'il plus simple si je placait mes variables dans un tableau par exemple ?

Merci

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

05 nov. 2008, 19:32

$egalite = (($var1===$var2) && ($var1===$var3));

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

05 nov. 2008, 19:53

Et s'il ne faut pas compter si elles sont vides :
$egalite = ((!empty($var1)) && ($var1===$var2) && ($var1===$var3));
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
AB
ViPHP | 5818 Messages

05 nov. 2008, 19:53

$egalite = (($var1===$var2) && ($var1===$var3));
Heu ... là c'est c'est les trois qui doivent être identiques; il n'avait pas dit au moins 2 ?

Sinon à priori je pense que pour un nombre indéterminé de variables il serait sans doute effectivement intéressant d'essayer les fonctions des tableaux :-k

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

05 nov. 2008, 20:13

Heu ... là c'est c'est les trois qui doivent être identiques; il n'avait pas dit au moins 2 ?
Pffff... Vous et vos manies de lire les énoncés... |(X
$egalite = ( ( (!empty($var1)) && ($var1===$var2) )
          || ( (!empty($var1)) && ($var1===$var3) )
          || ( (!empty($var2)) && ($var2===$var3) ) );
réductible en :
$egalite = ( ( (!empty($var1)) && ( ($var1===$var2) || ($var1===$var3) ) )
          || ( (!empty($var2)) && ($var2===$var3) ) );

Invité
Invité n'ayant pas de compte PHPfrance

05 nov. 2008, 20:21

ouais merci mais euh ....

pour une fois qu'il y a en a un qui se trompe pas de forum, merci de ne pas répondre à coté :D

oui oui on est bien dans le forum javascript :-)

bon y'a des chances que le triple === existe aussi en js (bien qu'un double me suffira je pense) , et pour le empty je fais un simple var!="" ?

merci

ViPHP
AB
ViPHP | 5818 Messages

05 nov. 2008, 20:25

D'ailleurs s'il s'agit simplement de savoir si deux valeurs du tableau sont identiques et non vide ça devrait pouvoir le faire avec array_unique() et array_filter()
$chaine = array(...);

//enlève les éléments vides
$tab = array_filter($chaine);

//dédoublonne le tableau
$resultat = array_unique($tab);

if (count($tab) > count($resultat)) echo 'au moins deux éléments sont identiques';
OUP's ah oui on est dans le forum js, m'avaient induis en erreur les deux autres :lol:

Dommage, ben t'a plus qu'à voir si y'a pas l'équivalent en JS :wink:
Modifié en dernier par AB le 05 nov. 2008, 20:27, modifié 1 fois.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

05 nov. 2008, 20:25

oui oui on est bien dans le forum javascript :-)
'scuse... le PHP, c'est un réflexe. :oops: :-*

ViPHP
AB
ViPHP | 5818 Messages

05 nov. 2008, 20:48

ouais merci mais euh ....

pour une fois qu'il y a en a un qui se trompe pas de forum, merci de ne pas répondre à coté :D

oui oui on est bien dans le forum javascript :-)

bon y'a des chances que le triple === existe aussi en js (bien qu'un double me suffira je pense) , et pour le empty je fais un simple var!="" ?

merci
Ben oui si tu transpose le code d'albat en js il te suffit de faire var !=""