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 :

Foreach + switch


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Coordinateur développement web
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Coordinateur développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 412
    Points
    412
    Par défaut Foreach + switch
    Bonjour,

    J'ai un petit soucis dans l'utilisation du foreach avec un switch
    mon code ressemble a celui ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    foreach($arr as key => $val){
       switch($val){
           case 1 : ......
                       break;
     
       }
     
    }
    Le problème viens du break car il me fait sortir de mon case mais également de mon foreach

    Avait vous une solution pour l'utilisation de c deux critère ? (a part mettre des if )

    PAr avnce merci

    Mic
    Toutes mes références en ligne : http://www.developpeur-web-php.fr

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Hello,

    remplace tes break; par des continue;

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Heu continue 2;
    Pardon.

  4. #4
    Membre averti
    Homme Profil pro
    Coordinateur développement web
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Coordinateur développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 412
    Points
    412
    Par défaut
    Yes !!!!

    ça marche

    Merci
    Toutes mes références en ligne : http://www.developpeur-web-php.fr

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    de rien

  6. #6
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    tu dois faire une boulette quelque part...

    essaies ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
    $tab = array("val0" => 1, "val1" => 2,"val2" => 3,"val3" => 4,"val4" => 5,"val5" => 6,"val6" => 7,"val7" => 8,"val8" => 9,"val9" => 10);
     
    foreach ($tab As $key => $val) {
       switch($val) {
          case 1: $nb="un";    break;
          case 2: $nb="deux";  break;
          case 3: $nb="trois"; break;
          case 4: $nb="quatre";break;
          case 5: $nb="cinq";  break;
          case 6: $nb="six";   break;
          case 7: $nb="sept";  break;
          case 8: $nb="huit";  break;
          case 9: $nb="neuf";  break;
          case 10: $nb="dix";  break;
          default: $nb="rien"; break;
       }
       echo "valeur = $nb<br />";
    }
    ?>

  7. #7
    Membre averti
    Homme Profil pro
    Coordinateur développement web
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Coordinateur développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 412
    Points
    412
    Par défaut
    marche plus, sniff

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    		foreach($_REQUEST['pdf'] as $key => $val){
    			$nameFile=str_replace('.','',str_replace(' ','',microtime()));
    			switch ($val) {
    				case PDF_CONTENTS :
    					$htm->setSommaire(1);
    				case PDF_TITLE:
    					require_once('pdf/createtitle.php');
    					createtitle($nameFile);
    					$htm->setPage(PDF.$nameFile.".tmp");
    					continue;
    				case PDF_FOCUS_CATEGORIES: foreach($cat as $c){
    												$nameFile=str_replace('.','',str_replace(' ','',microtime()));	
    												echo $c->getId();	
    												createfocuscategorie($nameFile,$currency,$c->getId(),$net);
    												$htm->setPage(PDF.$nameFile.".tmp");
    											}
    											continue 2;
    				case PDF_FOCUS_SEGMENTS: require_once('pdf/createfocussegment.php');
    										foreach($seg as $s){
    											echo $s->getId();						
    											$nameFile=str_replace('.','',str_replace(' ','',microtime()));		
    											createfocussegment($nameFile,$currency,$s->getId(),$net);
    											$htm->setPage(PDF.$nameFile.".tmp");
    										}
    										continue 2;
    			}
    		}
    		$htm->PrintPdf();
    je ne vois pas ce qui cloche
    Toutes mes références en ligne : http://www.developpeur-web-php.fr

  8. #8
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Hello,

    tu as oublié un continue2; au premier case, et juste le 2 du continue au second case.

  9. #9
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Je ne savais pas que php supportait les sorties de plusieurs niveau avec continue et break, c'est bon à savoir
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  10. #10
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Je ne crois pas que ce soit le cas avec break. Mais ça l'est avec continue voui.

  11. #11
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Si si, je viens de tester avec break 2; et ca marche

    Par contre un numéro supérieur au nombre de cycle dans lequel se trouve le break ou le continue entraine une PARSE_ERROR
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  12. #12
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    C'est bon à savoir :-) !
    On devrait donc pouvoir remplacer continue 2; par break 2; ici.

  13. #13
    Membre averti
    Homme Profil pro
    Coordinateur développement web
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Coordinateur développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 412
    Points
    412
    Par défaut
    Ok c bien le continue 2 qui manquer !

    Merci

    Mic
    Toutes mes références en ligne : http://www.developpeur-web-php.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réseaux : switch, routeur et wi-fi
    Par SteelBox dans le forum Hardware
    Réponses: 4
    Dernier message: 07/12/2003, 20h25
  2. Switch 1000Mbit
    Par Civodul4 dans le forum Hardware
    Réponses: 8
    Dernier message: 02/12/2003, 13h16
  3. switch
    Par drKzs dans le forum C
    Réponses: 3
    Dernier message: 07/10/2003, 07h59
  4. Réponses: 6
    Dernier message: 26/01/2003, 13h45

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