Aller au contenu

PHP : Comparaison de variables


Sujets conseillés

Posté

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 ?

Posté

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

Posté

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:

Posté
(...) 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...

Posté

Merci Dan et Anonymus,

En effet la solution grâce au "Array" était bien plus facile...

Allez va, j'aurai fait un pas de plus dans le PHP...

Merci

Posté

bien plus facile, bien sûr ;)

Au fait, comment fais tu la.. comparaison (qui n'en est pas une, mais bon.. )?

Posté
Au fait, comment fais tu la.. comparaison (qui n'en est pas une, mais bon.. )?

Hello "Anonymus",

Voici ce que j'ai fait

if ($new == $nom[$x])

Quelque chose m'aurait-il , encore, échappé ?

Posté

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

Veuillez vous connecter pour commenter

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



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