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 :

Logique foreach Ne pas afficher si vide


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 71
    Par défaut Logique foreach Ne pas afficher si vide
    Bonjour à tous,

    J'ai un petit problème de logique que je n'arrive pas a résoudre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      foreach ($groupe_important->getAllCriteres(true) as $value){
        echo '<div class="ctitre"><i>'.$value.' :</i></div>';
           foreach ($critereclient as $index => $values){
            $TabTri = Tools::array_sort($values['value'] , 'datas_value');
              foreach ( $TabTri as  $langue ) {
                    if ( $value == $index ){
                          echo ' => '.  $langue. '<br /><br />' ;
                        }
              }
           }
      }
    Ce code fonctionne très bien, mais je n'arrive pas à rajouter une choses :

    Ne pas afficher echo ' => '. $langue. '<br /><br />' ; si il y a pas de $langue défini.

    J'ai essayer plusieurs méthode, empty, isset, compte les $i avec de $i++, mais rien a faire.

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Par exemple tu peux essayer d'utiliser les fonctions des tableaux pour supprimer les éléments vides de $TabTri :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //...
    $TabTri = Tools::array_sort($values['value'] , 'datas_value');
     
     
    $TabTri = array_map('trim',$TabTri);//supprime les espaces vides en début et en fin de chaine
    $TabTri = array_filter($TabTri);//supprime les éléments vides
     
     
    foreach ( $TabTri as  $langue ) {//...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 71
    Par défaut
    Merci cela m'a donnée une idée pour un autre truc

    Mais là j'aimerai faire une sorte de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                    if ( $value == $index ){
                          echo ' => '.  $langue. '<br /><br />' ;
                        } else {
      echo "Langue est vide"  ;
    }
    Sauf que cela m'affiche :

    Langue est videLangue est videLangue est videLangue est videLangue est videLangue est videLangue est videLangue est videLangue est vide

    Soit autant de fois que j'ai d'option disponible. Et j'aimerai que cela s'affiche qu'une fois

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Bah tu peux initialiser une valeur témoin que tu mets en dehors de ta boucle.
    Sur le principe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $temoin = null;
     
    foreach ($tab as $value)
    {
    if ($value == 'toto') $temoin = 'Au moins une valeur est égale à toto';
    }
     
    if(isset($temoin)) echo $temoin;

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 71
    Par défaut
    En fait j'avais encore un foreach au dessus,

    J'ai mis un témoin et cela est passé
    petit prise de tête pour rien

    Merci

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

Discussions similaires

  1. [AC-2007] Ne pas afficher enregistrement vide dans sous formulaire
    Par Lux (le noob) dans le forum IHM
    Réponses: 2
    Dernier message: 04/03/2014, 11h49
  2. Réponses: 4
    Dernier message: 25/06/2013, 13h25
  3. Ne pas afficher ligne vide Listview
    Par dark_botsay dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/09/2010, 11h16
  4. Réponses: 11
    Dernier message: 09/12/2004, 15h03
  5. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40

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