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 :

Comment quitter une boucl foreach aussi que true est trouvé


Sujet :

Langage PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 102
    Points : 953
    Points
    953
    Par défaut Comment quitter une boucl foreach aussi que true est trouvé
    Bonjour à tous,

    J'ai un array qui contient que des 1 ou des 0

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // Contenu de $this->request['data']['Course']
    array(
    'name'=>'toto',
    'title'=>'bonjour',
    'typtrail'=>'0',
    'typcross'=>'1',
    'typrun'=>'0',
    'typcycle'=>'0',
    'typvtt'=>'0',
    'typski'=>'0',
    'typsnowshoes'=>'0'
    )

    et je lit cet array ainsi:

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    foreach($this->request['data']['Course'] as $key => $value){
    	if(ereg("typ",$key)){
    		echo $key.':'.$value.'<br>';
    		// Si value est à 1, sort du foreach
    		switch($value){
    			case "1":
    				$res=true;
    				break;
    			case "0":
    				$res = false;
    				continue;
    		}
    	}
    }

    En fait j'aimerais savoir s'il y a une des entrée qui commence par typ qui est à 1.
    S'il y en a aucun, $res doit retoruné false, si il y a au moins à 1, $res doit retourner true.

    Comment es-ce que je peux faire pour que dès le case "1" est passé, il quitte le foreach, ou faire en sorte que le $res n'est pas remis à 0???

    Milles mercis

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    encore une fois, il faut faire simple ; pas besoin d'un ereg qui en plus est obsolète, pas besoin d'un switch non plus.
    Et le break sert à sortir d'une boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $res = FALSE;
    foreach($this->request['data']['Course'] as $key => $value) {
         if (substr($key,0, 3) == "typ" && $value === 1) {
                    $res = TRUE;
                    break;
         }
    }

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 102
    Points : 953
    Points
    953
    Par défaut
    Merci sabotage
    Je suis arrivé à ceci, mais pas aussi propre

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 13/04/2015, 11h18
  2. Comment créer un tableau dans une boucle foreach ?
    Par razily dans le forum Langage
    Réponses: 4
    Dernier message: 30/04/2012, 12h25
  3. Réponses: 16
    Dernier message: 06/04/2007, 14h36
  4. [FTP] comment corriger une boucle infinie ?
    Par sofybj dans le forum Langage
    Réponses: 8
    Dernier message: 08/11/2005, 15h49
  5. Comment faire une boucle ???
    Par HookerSeven dans le forum Access
    Réponses: 6
    Dernier message: 17/06/2005, 13h58

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