Régis Posté 20 Novembre 2005 Partager Posté 20 Novembre 2005 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 More sharing options...
Dan Posté 20 Novembre 2005 Partager Posté 20 Novembre 2005 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 More sharing options...
Anonymus Posté 20 Novembre 2005 Partager Posté 20 Novembre 2005 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 More sharing options...
Régis Posté 20 Novembre 2005 Auteur Partager Posté 20 Novembre 2005 (...) 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 More sharing options...
Régis Posté 20 Novembre 2005 Auteur Partager Posté 20 Novembre 2005 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 20 Novembre 2005 Partager Posté 20 Novembre 2005 bien plus facile, bien sûr Au fait, comment fais tu la.. comparaison (qui n'en est pas une, mais bon.. )? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Régis Posté 20 Novembre 2005 Auteur Partager Posté 20 Novembre 2005 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é ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 20 Novembre 2005 Partager Posté 20 Novembre 2005 Non, non. Très bien Seulement, [rabachage]tu as accès à beaucoup plus de fonctions [/] 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant