Partage
  • Partager sur Facebook
  • Partager sur Twitter

Difficulté pour utiliser foreach

Foreach imbriqués

Sujet résolu
    9 avril 2024 à 19:11:26

    Bonjour,

    Débutant, j'ai un problème pour appliquer des foreach imbriqués sur tableaux imbriqués.

    J'ai une liste de lettre, chacune d'entre elles pouvant avoir pas ou plusieurs pièces jointes.

    Dans l'exemple ci-dessous, j'attends le résultat suivant :

    Lettre n° 1 du date1
       pj 11

    Lettre n° 2 du date2
       pj 21
       pj 22

    Lettre n° 3 du date3
       pj 31
       pj 32
       pj 33

    Mais j'obtiens celui-ci :

    Lettre n° 1 du date1
       pj 31
       pj 32
       pj 33

    Lettre n° 2 du date2
       pj 31
       pj 32
       pj 33

    Lettre n° 3 du date3
       pj 31
       pj 32
       pj 33

    Voici le programme :

    <?php

    ///***********Déclarations***********

    //début

    $lettre=array(

    //lettre1 1pj

    array(1,'date1',$pj=array(

    array(11),)),

    //lettre2 2pj

    array(2,'date2',$pj=array(

    array(21),

    array(22),)),

    //lettre3 3pj

    array(3,'date3',$pj=array(

    array(31),

    array(32),

    array(33),)),

    //fin

    );

    //***********Tirage***********


    foreach($lettre as list($numlettre,$datelettre))

    {

    {echo 'Lettre n° '.$numlettre.' du '.$datelettre.'';}

    {foreach($pj as list($numpj))

    {echo '<br />&nbsp;&nbsp;&nbsp;pj '.$numpj.'';}

    }

    {echo '<br /><br />';}

    }

    ?>

    J'ai à un moment trouvé une modification simple pour avoir le bon résultat, mais je l'ai perdu.

    Quelqu'un peut me dire où je fais une faute ?

    Par avance merci.

    Cordialement.


    • Partager sur Facebook
    • Partager sur Twitter
      9 avril 2024 à 19:59:00

      Bonjour, Merci de lire les règles du forum AVANT de créer un sujet.

      Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Merci de colorer votre code à l'aide du bouton Code </>

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton  </> de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: php;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        10 avril 2024 à 8:02:21

        Bonjour, 

        Il faudrait rajouter $pj dans le list() initial sinon il ne sera jamais assigné 

        un truc comme ça :

        foreach($lettre as list($numlettre,$datelettre, $pj)) {    
            echo 'Lettre n° '.$numlettre.' du '.$datelettre.'';
            foreach($pj as list($numpj)){
                echo '<br />&nbsp;&nbsp;&nbsp;pj '.$numpj.'';
            }
            echo '<br /><br />';
        } 
        NB : J'ai enlevé des '{ }' parce que je trouvais qu'il y en avait bcp, mais ça marche aussi avec votre code  tel quel ^^

        -
        Edité par GBNet 10 avril 2024 à 8:12:04

        • Partager sur Facebook
        • Partager sur Twitter
          10 avril 2024 à 10:28:15

          Bonjour GPNet,

          Merci pour votre prompte réponse.

          Cela fonctionne comme voulu. Je n'auatais pas fait appel en vain à ce forum.

          Cordialement.

          • Partager sur Facebook
          • Partager sur Twitter
            10 avril 2024 à 10:35:56

            Il aurait été apprécié de prendre en compte la demande de modération… Merci de le faire malgré la résolution du sujet.

            @GBNet : normalement, quand une demande de modération est en suspens, on ne répond pas à la discussion.

            -
            Edité par Ymox 10 avril 2024 à 10:39:29

            • Partager sur Facebook
            • Partager sur Twitter
              10 avril 2024 à 11:44:18

              :euh: Oups navré, j'ai zappé l'info ;  je le saurai pour la suite
              • Partager sur Facebook
              • Partager sur Twitter

              Difficulté pour utiliser foreach

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown