Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/03/2011, 20h33   #1
Futur Membre du Club
 
Inscription : juillet 2010
Messages : 32
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 32
Points : 19
Points : 19
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 :
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
pablofr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 20h48   #2
Membre Expert
 
Inscription : septembre 2010
Messages : 1 240
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 240
Points : 1 562
Points : 1 562
Par exemple tu peux essayer d'utiliser les fonctions des tableaux pour supprimer les éléments vides de $TabTri :
Code :
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 ) {//...
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 20h57   #3
Futur Membre du Club
 
Inscription : juillet 2010
Messages : 32
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 32
Points : 19
Points : 19
Merci cela m'a donnée une idée pour un autre truc

Mais là j'aimerai faire une sorte de :
Code :
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
pablofr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 21h10   #4
Membre Expert
 
Inscription : septembre 2010
Messages : 1 240
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 240
Points : 1 562
Points : 1 562
Bah tu peux initialiser une valeur témoin que tu mets en dehors de ta boucle.
Sur le principe :

Code :
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;
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 23h21   #5
Futur Membre du Club
 
Inscription : juillet 2010
Messages : 32
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 32
Points : 19
Points : 19
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
pablofr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h09.


 
 
 
 
Partenaires

Hébergement Web