Boucle for et nom de tableau

Résolu
peek59 -  
 peek59 -
Bonjour,
Je souhaiterai créer une boucle for avec à l'interieur la déclaration d'un tableau dont une partie du nom des tableaux inclus la variable de la boucle :

for ($num=0; $num <= 20; $num++)
{
$tab_inf_0 = array();
}

A chaque tour de boucle le tableau créé doit avoir un nom différent selon :

$tab_inf_0 = array();
$tab_inf_1 = array();
$tab_inf_2 = array();
$tab_inf_3 = array();
$tab_inf_4 = array();
$tab_inf_5 = array();
......

Avez vous une idée de la syntaxe de déclaration de tableau ?
J'ai essayé cela mais ça ne fonctionne pas
${"tab_inf_".$z.} = array();

Merci pour votre aide

5 réponses

  1. hervé56 Messages postés 296 Statut Membre 10
     
    bin, met tout dans un tableau
    $tab_inf = array();
    
    for ($num=0; $num <= 20; $num++){
         $tab_inf[$num] = array(
                                        "machin" => $truc,
                                        "bidule" => $chouette );
         //etc
    }
    0
  2. Utilisateur anonyme
     
    salut,

    essaie ceci : ${"tab_inf_".$z} = array();
    0
  3. peek59
     
    Merci pour vos réponses, ${"tab_inf_".$z} = array(); semble approprié pour ce que je recherche.
    Par contre je n'arrive pas, avec la syntaxe ci-dessous, à afficher le contenu du tableau

     foreach (${"tab_inf_".$z} as $key => $val) 
    {
     echo "$key = $val <br>";
     }


    Avec ce code, rien ne s'affiche alors que j'ai bien des valeurs dans mes tableaux.

    Merci pour vos réponses
    0
  4. Utilisateur anonyme
     
    regarde si le tableau tab_inf_$z a bien des valeurs dedans (avec $z : la derniere valeur qu'il recoit (dans ton premier exemple c'est 20 ) ).
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. peek59
     
    C'est bon ca marche, le problème venait de l'insertion de valeurs, j'avais mis :

    ${"tab_inf_".$z."[]"} = $id_fonction;


    alors qu'il fallait mettre :

    ${"tab_inf_".$z}[] = $id_fonction;


    Merci pour votre aide
    0