Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3055 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Parcourir un tableau php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Parcourir un tableau php

n°1852165
dev123
Posté le 17-02-2009 à 14:39:40  profilanswer
 

Bonjour,
J'ai un petit problème dans mes boucle pour parcourir un tableau:
Merci de helpp  

Code :
  1. for($i = 1; $i <$nbquestion; $i++)
  2.      {
  3.      for($j =0; $j<$nbquestion;)
  4.      {
  5.      echo $tabaff[$j].'<br>';
  6.       if ($tabaff[$j] == $tabaff[$i])
  7.       {
  8.       echo 'erreur';
  9.       }
  10.       else
  11.       {
  12.        $j++;
  13.       }
  14.      }
  15.                                                 }


 
sachant que le tablea correspond a sa  

Code :
  1. Array ( [0] => 1 [1] => 2 )


rien ne s'affiche

Message cité 1 fois
Message édité par dev123 le 17-02-2009 à 14:40:30
mood
Publicité
Posté le 17-02-2009 à 14:39:40  profilanswer
 

n°1852167
dwogsi
Défaillance cérébrale...
Posté le 17-02-2009 à 14:46:27  profilanswer
 

Code :
  1. for($i = 1; $i <$nbquestion; $i++)
  2. {
  3.  for($j =0; $j<$nbquestion;)
  4.  {
  5.    echo $tabaff[$j].'<br>';
  6.    if ($tabaff[$j] == $tabaff[$i])
  7.    {
  8.      echo 'erreur';
  9.    }
  10.    else // T'aurais pas une boucle infinie par ici ?
  11.    {
  12.      $j++;
  13.    }
  14.  } // Il en maquait une, erreur de copier/coller ?
  15. }


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1852168
macgawel
Posté le 17-02-2009 à 14:46:27  profilanswer
 

dev123 a écrit :


Code :
  1. for($i = 1; $i <$nbquestion; $i++)
  2. for($j =0; $j<$nbquestion;)



Normal que tu n'aies pas la même syntaxe ?  :ange:  
 
Sinon, tu devrais étudier le foreach, ça pourrait t'intéresser...

n°1852170
omega2
Posté le 17-02-2009 à 14:47:36  profilanswer
 

Dis moi, tu te rends compte que si tu tombes sur une erreur, tu te retrouves à boucler indéfiniment sur ton erreur?
 
Sinon, que vaut $nbquestion? Il faut qu'il vaille au moins deux pour rentrer dans le "for" extérieur.
 
EDIT : demis  [:rttolivers]


Message édité par omega2 le 17-02-2009 à 14:48:35
n°1852173
dev123
Posté le 17-02-2009 à 14:50:33  profilanswer
 

macgawel a écrit :

Normal que tu n'aies pas la même syntaxe ?  :ange:  
 
Sinon, tu devrais étudier le foreach, ça pourrait t'intéresser...


 
j'ai pas vraiment trouvé ce que je cherchais  
 

dwogsi a écrit :

Code :
  1. else // T'aurais pas une boucle infinie par ici ?
  2.    {
  3.      $j++;
  4.    }
  5.  } // Il en maquait une, erreur de copier/coller ?
  6. }



 
oui j'ai bien une boucle infini et bien erreur de copier/coller lol  
 
 
Et aussi le nbreponse correspond a 2
 

n°1852180
dwogsi
Défaillance cérébrale...
Posté le 17-02-2009 à 14:55:51  profilanswer
 

Et donc ?
T'es sûr que c'est pas quelque chose dans ce genre que tu voulais :

 
Code :
  1. for($i = 1; $i <$nbquestion; $i++)
  2. {
  3.  for($j =0; $j<$nbquestion;$j++)
  4.  {
  5.    echo $tabaff[$j].'<br>';
  6.    if ($tabaff[$j] == $tabaff[$i]) echo 'erreur';
  7.  }
  8. }
 

En fait je commence à me demander si tu cherche pas à vérifier si les deux tableaux contiennent les mêmes valeurs.
Et si c'est le cas alors ton code est complètement faux.


Message édité par dwogsi le 17-02-2009 à 15:01:02

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1852185
dev123
Posté le 17-02-2009 à 15:04:05  profilanswer
 

merde dsl j'ai pas bien expliqué mon problème  
 moi ce ke je cherche c a parcourir un tableau et vérifier si tout les valeur sont identique si c'est le cas afficher erreur

n°1852189
macgawel
Posté le 17-02-2009 à 15:08:34  profilanswer
 

Et tu as conscience que ton code va te renvoyer un paquet d'erreurs (au minimum $nbquestion - 1) ?
Exemple :

Code :
  1. $tabaff[0] = 1;
  2. $tabaff[1] = 2;
  3. $tabaff[2] = 2;
  4. $nbquestion = 3;


Voilà comment ça va se passer :

$i = 1  
 $j = 0 =>  
 $j = 1 => $tabaff[1] = $tabaff[1] => "erreur"
 $j = 2 => $tabaff[1] = 2 = $tabaff[2] => "erreur"
$i = 2
 $j = 0 =>  
 $j = 1 => $tabaff[1] = 2 = $tabaff[2] => "erreur"
 $j = 2 => $tabaff[2] = $tabaff[2] => "erreur"

n°1852192
dev123
Posté le 17-02-2009 à 15:10:45  profilanswer
 

ok pas vraiment compris lol
 comment gére le problème dans ce cas ?? :)

n°1852197
omega2
Posté le 17-02-2009 à 15:17:21  profilanswer
 

dev123 a écrit :

ok pas vraiment compris lol
 comment gére le problème dans ce cas ?? :)

En php, soit avec les fonctions de comparaisons de tableaux, soit en bouclant sur un tableau avec un foreach (avec la syntaxe qui retourne aussi la clé) et en utilisant les infos du foreach pour comparer les cases des deux tableaux qui correspondent.

mood
Publicité
Posté le 17-02-2009 à 15:17:21  profilanswer
 

n°1852198
skeye
Posté le 17-02-2009 à 15:18:33  profilanswer
 

ça ressemble vachement à un exercice de cours cette histoire, quand même.[:petrus75]


---------------
Can't buy what I want because it's free -
n°1852200
dev123
Posté le 17-02-2009 à 15:22:03  profilanswer
 


omega2 a écrit :

En php, soit avec les fonctions de comparaisons de tableaux, soit en bouclant sur un tableau avec un foreach (avec la syntaxe qui retourne aussi la clé) et en utilisant les infos du foreach pour comparer les cases des deux tableaux qui correspondent.


Ok je vais réfléchir je  surement trouve la réponse!! je te fait part du resultat un peut plus tard
 
Merci
 

skeye a écrit :

ça ressemble vachement à un exercice de cours cette histoire, quand même.[:petrus75]


Je suis un débutant en php qui essaye de réussir lol :)

n°1852202
macgawel
Posté le 17-02-2009 à 15:31:41  profilanswer
 

dev123 a écrit :

ok pas vraiment compris lol
 comment gére le problème dans ce cas ?? :)


Quand tu as un problème dans une boucle, teste la avec quelques valeurs (et le cas échéant avec des valeurs "limites" ), ça t'aidera à comprendre où est le problème.
Ici, je la teste avec un tableau de 3 éléments. Et on constate que tu renvoies le message d'erreur trop souvent...
 
Si tu veux faire un système de boucles imbriquées, $i parcourt tout le tableau, mais $j ne doit parcourir que les éléments après $i.
Mais ça n'est valable que dans le cas d'un exercice, ou en vue d'un portage ultérieur.
Si l'objectif est de faire un code PHP robuste, il faudrait savoir ce que tu cherches à faire mais il y a des fonctions PHP qui pourraient t'aider...

n°1852205
dwogsi
Défaillance cérébrale...
Posté le 17-02-2009 à 15:35:36  profilanswer
 

Non mais pour vérifier si toutes les valeurs d'un tableau sont identiques il n'y a certainement pas besoin d'imbriquer les boucles.

 

Dans une simple boucle, suffit de contrôler que la valeur courante est égale à la précédente par exemple, en démarrant le parcourt du tableau à 1. Dès que c'est faux, on sait que les valeurs du tableaux ne sont pas toutes identiques. On quitte la boucle et on transmet l'info via une variable de contrôle.

 

Et si la taille du tableau est variable, ne pas oublier de traiter le cas particulier d'un tableau de taille 1.


Message édité par dwogsi le 17-02-2009 à 15:36:51

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1852216
dev123
Posté le 17-02-2009 à 15:45:42  profilanswer
 

macgawel a écrit :


Quand tu as un problème dans une boucle, teste la avec quelques valeurs (et le cas échéant avec des valeurs "limites" ), ça t'aidera à comprendre où est le problème.
Ici, je la teste avec un tableau de 3 éléments. Et on constate que tu renvoies le message d'erreur trop souvent...
 
Si tu veux faire un système de boucles imbriquées, $i parcourt tout le tableau, mais $j ne doit parcourir que les éléments après $i.
Mais ça n'est valable que dans le cas d'un exercice, ou en vue d'un portage ultérieur.
Si l'objectif est de faire un code PHP robuste, il faudrait savoir ce que tu cherches à faire mais il y a des fonctions PHP qui pourraient t'aider...


 
 
oui je regard les fonctions.
il ne s'agit pas d'un exercice c'est un projet j'ai des types de libelles je verifie si les type sont présent plusieurs fois et si c'est le cas j'affiche un message d'erreur  
Merci

n°1852217
dwogsi
Défaillance cérébrale...
Posté le 17-02-2009 à 15:48:59  profilanswer
 

Problème d'expression...
Tu veux vérifier qu'il n'y ai pas de doublons dans ton tableau !


Message édité par dwogsi le 17-02-2009 à 15:49:10

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1852218
dev123
Posté le 17-02-2009 à 15:52:41  profilanswer
 

ehh wiii on peut le dire comme sa

n°1852221
dwogsi
Défaillance cérébrale...
Posté le 17-02-2009 à 15:55:17  profilanswer
 

Non non : On dit ça comme ça !
Google : http://www.google.fr/search?source [...] lr%3D&aq=f


Message édité par dwogsi le 17-02-2009 à 16:13:43

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1852230
dev123
Posté le 17-02-2009 à 16:57:11  profilanswer
 

lol merci pour la correction


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Parcourir un tableau php

 

Sujets relatifs
Tableau phprecuperer numero de ligne tableau
Background tableauPHP: Une commande pour parcourir un tableau...
parcourir tableau en vbaparcourir tableau en vba
parcourir un tableau 2D en diagonaleparcourir un tableau
Parcourir un tableau à colonnes variablesComment fait on pour parcourir un tableau a 2 dimensions en diagonal?
Plus de sujets relatifs à : Parcourir un tableau php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR