IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

indérer une variable dans une boucle foreach


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 41
    Points : 27
    Points
    27
    Par défaut indérer une variable dans une boucle foreach
    Bonjour,

    Ma question est peut-être très simple mais je n'y arrive pas.
    je voudrais insérer une variable externe $stopwords
    toute les 30 descriptions dans une boucle foreach .
    La seule chose que j'ai réussie à faire c'est l'insérer une seule fois
    à la ligne 30.
    merci d'avance de votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $i = 1; // initialisation
     
    foreach ($results as $result)  {
                  echo('<br /><li class="v">' .  $result->Description . '</li>');
                         if( $i == 30) echo("$stopwords");
    $i++;    // incrémentation
            }

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    une fois que ton $i a atteint 30, n'oublie pas de le faire repartir à 1 sinon, il va continuer à s'incrémenter au-delà de 30...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 41
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Salut,

    une fois que ton $i a atteint 30, n'oublie pas de le faire repartir à 1 sinon, il va continuer à s'incrémenter au-delà de 30...
    Je peux avoir un peu plus de précision, le php c'est un loisir
    occasionnel pour moi, j'apprend au fure et à mesure, mais cela repond
    il à ma question ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $i = 1; // initialisation
     
    foreach ($results as $result)  { for($i=1; $i<=40; $i++) 
     
                  echo('<br /><li class="v">' .  $result->Description . '</li>');
                         if( $i == 30) echo("$stopwords");
    $i++;    // incrémentation
            }
     
    }

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $i = 0; // initialisation
     
    foreach ($results as $result) {
        echo '<br /><li class="v">'.$result->Description.'</li>';
        if (++$i === 30) { 
            echo $stopwords;
            $i = 0;
        }
    }

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    encore une fois, c'est l'astuce du "modulo" (a%b) qu'il faut utiliser :
    a%b = "Reste de $a divisé par $b"
    Astuce :
    $i%30 = 0 à chaque fois que $i est un multiple de 30 !

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    echo '<ul>'; // liste ordonnée (suite de <li>)
    $i = 0; // compteur : initialisation
    foreach ($results as $result)  {
    	echo '<li class="v">' . $result->Description . '</li>'; // (PAS de <br /> avant <li> !)
    	$i++;    // compteur : incrémentation
    	// $i%30 = 0 à chaque fois que $i est un multiple de 30 !
    	if( $i%30 == 0) echo '<li class="stopwords">' . $stopwords . '</li>'; // (parenthèses inutiles) + on est dans une liste ordonnée ! (suite de <li>)
    }
    echo '</ul>';
    ?>

    PS : la solution de rawsrc fonctionne aussi, mais celle-ci est plus "élégante".

    => Pour info, voici une utilisation intéressante du modulo :
    -
    V-B. Affichage "en Colonne" - Solution 2, avec Array()
    - VI-A. Affichage "en Colonne" avec BD - Solution 1
    Dernière modification par Invité ; 14/10/2012 à 10h14.

Discussions similaires

  1. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  2. Récupérer le nom d'une colonne d'une table dans une variable
    Par mimi51340 dans le forum Général Java
    Réponses: 4
    Dernier message: 13/03/2008, 14h23
  3. Réponses: 4
    Dernier message: 29/01/2008, 11h12
  4. Réponses: 1
    Dernier message: 15/02/2007, 00h24
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo