gérer rubrique et sous rubriques.... avec un For

gérer rubrique et sous rubriques.... avec un For - PHP - Programmation

Marsh Posté le 27-11-2002 à 12:12:44    

voilà j'ai quelque chose de ce type :  
 


$R=Array("R1","R2","R3","R4","R5" );
$S=Array(R1=>"S1","S2","S3",R2=>"S1","S2","S3",R3=>"S1",R4=>"S1","S2",R5=>"S1","S2","S3","S4","S5" );


 
et je voudrais les afficher par rubrique, je fais donc ça :  
 

Code :
  1. for ($i=0;$i<count($R);$i++)
  2. {
  3. echo "rub : ".$R[$i]."";
  4. for ($x=0;$x<count($S[$R[$i]]);$x++)
  5.   {
  6.   echo "srub : ".$S[$x]."";
  7.   }
  8. }


 
maintenant, le pb c'est qu'il ne m'écrit rien en sous-rubriques... et je comprend pas pkoi...
 
z'oriez pas une idée ??  [:tilleul]

Reply

Marsh Posté le 27-11-2002 à 12:12:44   

Reply

Marsh Posté le 27-11-2002 à 12:17:44    

Code :
 
  for ($i=0;$i<count($R);$i++)
   {
     echo "rub : ".$R[$i]."";
     
     for ($x=0;$x<count$S[$R[$i]]);$x++)
      {
        echo "srub : ".$S[$x]."";
      }
   }
 
?


Message édité par webmaster PCPRICE le 27-11-2002 à 12:18:03
Reply

Marsh Posté le 27-11-2002 à 12:18:40    

parce que $S[0] n'existe pas, tout simplement
 
l'index est R1 R2 etc..  
 
fais plutôt un tableau à trois dimensions


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 27-11-2002 à 12:22:45    

Sh@rdar a écrit a écrit :

parce que $S[0] n'existe pas, tout simplement
 
l'index est R1 R2 etc..  
 
fais plutôt un tableau à trois dimensions




 
et comment on fait un tablo à 3 dimensions ??

Reply

Marsh Posté le 27-11-2002 à 12:26:52    

webmaster PCPRICE a écrit a écrit :

Code :
 
  for ($i=0;$i<count($R);$i++)
   {
     echo "rub : ".$R[$i]."";
     
     for ($x=0;$x<count$S[$R[$i]]);$x++)
      {
        echo "srub : ".$S[$x]."";
      }
   }
 
?




 
euh.... ça marche pô ton truc....  [:poischich]

Reply

Marsh Posté le 27-11-2002 à 12:35:18    

pour ton cas faudrait faire ça :
 
$Tableau = array (
  'R'=> Array ( 'R1'=>1,'R2'=>2,'R3'=>3,'R4'=>4,'R5'=>5),
  'S'=> Array  (  
    'S1' =>1,
    'S2' => 0,
    'S3' => 0,  
    'S4' => 3,
  )
);
 
 
tout dépend comment tu génères ton tableau, mais c'est plus simple de prendre le problème à l"envers :
 
parcourir, toutes les sous-catégories et n'afficher que celles qui correspondent à la catégorie parente
 
par exemple
 
foreach ($Tableau['R'] as $Key => $Val) {
  echo ' $Tableau['S']['$Val'];
}


Message édité par Sh@rdar le 27-11-2002 à 12:36:20

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 27-11-2002 à 12:41:18    

bah le $ est en trop non?

Reply

Marsh Posté le 27-11-2002 à 12:49:55    

Citation :

Code :
  1. for ($i=0;$i<count($R);$i++)
  2. {
  3. echo "rub : ".$R[$i]."";
  4. for ($x=0;$x<count($S[$R[$i]]);$x++)
  5.   {
  6.   echo "srub : ".$S[$R[$i]][$x]."";
  7.   }
  8. }



 
le résultat de $S[[$R[$i]] n'est pas un tableau, mais une chaine de caractères séparées par des ','
 
tu dois donc modifier ton tableau sous-rubrique :


$R=Array("R1","R2","R3","R4","R5" );
$S=Array( R1=>array("S1","S2","S3" ),
          R2=>array("S1","S2","S3" ),  
          R3=>array("S1" ),
          R4=>array("S1","S2" ),  
          R5=>array("S1","S2","S3","S4","S5" )
        );


Message édité par ethernal le 27-11-2002 à 12:52:48

---------------
...oups kernel error...
Reply

Marsh Posté le 27-11-2002 à 12:55:37    

et ensuite le mieux est d'utiliser la méthode de Shr@dar avec les clés et valeur.  Tu n'as plus besoin que d'un seul tableau.


Message édité par ethernal le 27-11-2002 à 13:45:51

---------------
...oups kernel error...
Reply

Marsh Posté le 27-11-2002 à 12:58:50    

Sh@rdar a écrit a écrit :

pour ton cas faudrait faire ça :
 
$Tableau = array (
  'R'=> Array ( 'R1'=>1,'R2'=>2,'R3'=>3,'R4'=>4,'R5'=>5),
  'S'=> Array  (  
    'S1' =>1,
    'S2' => 0,
    'S3' => 0,  
    'S4' => 3,
  )
);
 
 
tout dépend comment tu génères ton tableau, mais c'est plus simple de prendre le problème à l"envers :
 
parcourir, toutes les sous-catégories et n'afficher que celles qui correspondent à la catégorie parente
 
par exemple
 
foreach ($Tableau['R'] as $Key => $Val) {
  echo ' $Tableau['S']['$Val'];
}




 
Euh... j'ai pas tout compris... [:toukc] j'ai même rien compris du tout et ça m'intéresserais de creuser un peu...  [:tilleul]  
 
 

ethernal a écrit a écrit :

Citation :

Code :
  1. for ($i=0;$i<count($R);$i++)
  2. {
  3. echo "rub : ".$R[$i]."";
  4. for ($x=0;$x<count($S[$R[$i]]);$x++)
  5.   {
  6.   echo "srub : ".$S[$R[$i]][$x]."";
  7.   }
  8. }



 
le résultat de $S[[$R[$i]] n'est pas un tableau, mais une chaine de caractères séparées par des ','
 
tu dois donc modifier ton tableau sous-rubrique :


$R=Array("R1","R2","R3","R4","R5" );
$S=Array( R1=>array("S1","S2","S3" ),
          R2=>array("S1","S2","S3" ),  
          R3=>array("S1" ),
          R4=>array("S1","S2" ),  
          R5=>array("S1","S2","S3","S4","S5" )
        );






 
excellent, ça marche nickel !! merci beaucoup !!!  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed