Aller au contenu

PHP : Comparaison de variables


Régis

Sujets conseillés

Bonjour,

Eh oui, toujours néophyte en PHP... j'apprends... petit à petit...

J'ai des variables ($nom_XX, XX prends comme valeur de 1 à 20) qui ressemblent à ceci :

$nom_1 = 'abc';

$nom_2 = 'def';

$nom_3 = 'ghi';

$nom_4 = 'jkl';

...

$nom_20 = 'mno';

D'un autre côté, j'ai une variable :

$new = 'zzz'; (la valeur, zzz, de $new est obligatoirement égale à une des valeurs de $nom_XX : 'abc', 'def' ou 'ghi", etc...)

Je souhaiterai comparer la variable $new à l'ensemble des $nom_XX afin de déterminer à laquelle $new est égale ?

Le résultat doit être ceci : $new est égale, par exemple, à $nom_02 ou $new est égale à $nom_05 ...

J'ai essayé plusieurs trucs (if, for...) en vain... (je ne suis pas très doué !)

J'imagine qu'il faut incrémenter la variable $nom_XX... mais... je patauge.

Pouvez-vous m'aider ?

Lien vers le commentaire
Partager sur d’autres sites

Salut Régis,

D'où te viennent les noms de tes variables $nom_xx ?

Parce que si c'est de ton code, tu devrais plutôt utiliser un tableau (array en anglais).

Ce serait plus simple pour traiter les infos ensuite et tu pourrais utiliser des fonctions telles que foreach() , count(), ainsi que toutes les fonctions de traitement de tableau (commencent toutes par array_ )

Dan

Lien vers le commentaire
Partager sur d’autres sites

En fait, tu as une erreur, dans la conception de ton programme.

Il peut te paraitre plus simple d'utiliser des noms simples :

$nom_1, $nom_2, etc..

Seulement, il aurait été plus judicieux d'utiliser un tableau :

$nom[1], $nom[2], etc..

Cependant :

Si le 20 de $nom_20 est le maximum, et qu'il est 'figé (autrement dit, que tu n'ais pas de $nom_45 demain, sans $nom_39, etc..

Donc : S'il y a effectivement 20 variables qui commencent par $nom_ et qui vont de 1 à 20, alors :

for($x=1;$x<=20,$x++){
 if ($new == $nom_$x)
   // code..
}

Normalement, ca suffit.

edi : lol:

Lien vers le commentaire
Partager sur d’autres sites

(...) D'où te viennent les noms de tes variables $nom_xx ?

Parce que si c'est de ton code, tu devrais plutôt utiliser un tableau (array en anglais).

Salut DAN,

Les variables $nom_xx sont créées par moi...

Oups, j'ai vu quelques trucs avec Array... si je comprends bien, il va falloir que je vois cela...

Lien vers le commentaire
Partager sur d’autres sites

Non, non. Très bien :)

Seulement, [rabachage]tu as accès à beaucoup plus de fonctions :D [/]

Par exemple, tu peux tester avec une seule fonction, si la variable est dans le tableau :

in_array --  Indique si une valeur appartient à un tableau

Ca donnera :

if (in_array($variable,$tableau)){
// code
}

Ca évite les problèmes liés aux index.

(s'il manque l'index n° 19, ou autre.. )

Tu peux aussi, ainsi, appeler tes index par des noms, au lieu de leur donner des numéros (enfin.. quand les noms deviennent pertinents)

etc..

Tu as aussi la possibilité d'utiliser "foreach" (je pense que tu as utilisé for(..) ? )

Ca donnerait :

foreach($tableau as $k => $v)
 if ($v==$variable){
  // code
}

Bref, que de bonnes choses :D

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...