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 :

Php empty sur plusieurs valeurs


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Points : 120
    Points
    120
    Par défaut Php empty sur plusieurs valeurs
    Bonjour,

    Comment je peux faire ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $val1 = "Euro";
    $val2 ="Dollar";
    $val3 ="Yen";
        if(empty($val1)) {
       echo '';
        } else{
       echo 'En europe '.$val1.', Usa '.$val2.', Japon '.$val3.'';
        }
    Derrière à la suite du code ci dessus
    Si $val2=""; est vide alors affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       echo 'En europe '.$val1.', Japon '.$val3.'';
    Si $val3=""; est vide alors affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       echo 'En europe '.$val1.', Usa '.$val2.'';

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    C'est quoi le problème, vu que ça marche parfaitement bien :
    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
    15
    16
    17
    18
    19
    20
    21
     
    <?php
    $val1 = "Euro";
    $val2 ="Dollar";
    $val3 ="Yen";
        if(empty($val1)) {
       echo '';
        } else{
       echo 'Usa '.$val2.', Japon '.$val3."<br/>";
        }
    if(empty($val2)) {
       echo '';
        } else{
       echo 'En europe '.$val1.', Japon '.$val3."<br/>";
        }
    if(empty($val3)) {
       echo '';
        } else{
        echo 'En europe '.$val1.', Usa '.$val2."<br/>";
        }	
    ?>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Points : 120
    Points
    120
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    C'est quoi le problème, vu que ça marche parfaitement bien :
    Citation Envoyé par jreaux62 Voir le message
    Si ta question signifie "De quelle manière plus concises puis-je écrire ce code ?" :
    Ben c'est une suite logique que je cherche, si $val1 = "Euro"; n'existe pas alors on n'affiche pas $val2 ="Dollar"; et $val3 ="Yen";

    Mais si $val1 = "Euro"; existe alors on affiche $val2 ="Dollar"; et $val3 ="Yen"; lorsqu'il ne sont pas vide.

  4. #4
    Invité
    Invité(e)
    Par défaut
    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
    <?php
    $val[0] = "Euro";	//"Euro";
    $val[1] = "";	//"Dollar";
    $val[2] = "";	//"Yen";
    $val[3] = "Franc";
    $val[4] = "Yuan";
    $pay[0] = "Europe";
    $pay[1] = "Usa";
    $pay[2] = "Japon";
    $pay[3] = "Suisse";
    $pay[4] = "Chine";
     
    $cnt = count($val);
    $tab = array();
    for($i=0; $i<$cnt; $i++)
    {
    	if( empty($val[$i]) ) 
    	{ 
    		foreach( $val as $j => $v)
    		{
    			if( $j != $i && !empty($val[$j]) && !in_array( $pay[$j].' '.$val[$j], $tab) ) { $tab[] = $pay[$j].' '.$val[$j]; }
    		}
    	}
    }
    if( !empty($tab) ) { echo implode ( ', ', $tab ) . '<br />'; }
    ?>
    Cela dit.... je n'ai rien compris à ta "logique"...

    Explique avec des mots le but de l'opération.
    On verra si tu t'y prends de la bonne manière.
    Dernière modification par Invité ; 07/03/2015 à 08h22.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Points : 120
    Points
    120
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Cela dit.... je n'ai rien compris à ta "logique"...
    C'est vrai que c'est pas forcement explicite

    Voici le code sur lequel je travaille

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    $ouverture_jour_1_debut="jeudi";  $ouverture_jour_1_fin="vendredi";
    $ouverture_jour_2_debut="samedi";  $ouverture_jour_2_fin="samedi";
    $ouverture_jour_3_debut="lundi";  $ouverture_jour_3_fin="mardi";
    $ouverture_jour_4_debut="mercredi";  $ouverture_jour_4_fin="mercredi";
    $ouverture_jour_5_debut="dimanche";  $ouverture_jour_5_fin="dimanche";
     
    $heure_ouverture_matin1="heure du matin (un)";
    $heure_ouverture_matin2="heure du matin (deux)";
    $heure_ouverture_matin3="heure du matin (trois)";
    $heure_ouverture_matin4="heure du matin (quatre)";
    $heure_ouverture_matin5="heure du matin (cinq)";
     
    $heure_ouverture_apres_midi1="heure le l'après-midi (un)";
    $heure_ouverture_apres_midi2="heure le l'après-midi (deux)";
    $heure_ouverture_apres_midi3="heure le l'après-midi (trois)";
    $heure_ouverture_apres_midi4="heure le l'après-midi (quatre)";
    $heure_ouverture_apres_midi5="";
     
    $note1="note (un)";
    $note2="note (deux)";
    $note3="note (trois)";
    $note4="note (quatre)";
    $note5="";
     
    $week = array('lundi'=>1, 'mardi'=>2, 'mercredi'=>3, 'jeudi'=>4, 'vendredi'=>5, 'samedi'=>6, 'dimanche'=>7);
    function affiche_jour_horaires_note($ouverture_jour_debut, $ouverture_jour_fin, $heure_ouverture_matin, $heure_ouverture_apres_midi, $note, &$jour_et_heure_ouverture_et_note) {
       global $week;
    /*jours unique ouverture*/
       if (empty($ouverture_jour_debut)) {
          $day = '';
       }
       elseif ($ouverture_jour_debut === $ouverture_jour_fin) {
    /*Ouvert que le matin*/
           if(empty($heure_ouverture_apres_midi) ) { $day = 'Le ' . $ouverture_jour_debut.' de '.$heure_ouverture_matin.' ('.$note.')'; }
    /*Ouvert matin et apres midi*/
              else { $day = 'Le ' . $ouverture_jour_debut.' de '.$heure_ouverture_matin.' et de '.$heure_ouverture_apres_midi.' ('.$note.')';}
       }
    /////////////////////////////////////////////////////
    /*ouverture du jour au jour*/
       else {
           $day = 'Du ' . $ouverture_jour_debut . ' au '.$ouverture_jour_fin.' de '.$heure_ouverture_matin.'';
     /*Ouvert que le matin*/
           if(empty($heure_ouverture_apres_midi) ) { $day = 'Du ' . $ouverture_jour_debut . ' au '.$ouverture_jour_fin.' de '.$heure_ouverture_matin.' ('.$note.')'; }
    /*Ouvert matin et apres midi*/
              else { $day = 'Du ' . $ouverture_jour_debut . ' au '.$ouverture_jour_fin.' de '.$heure_ouverture_matin.' et de '.$heure_ouverture_apres_midi.' ('.$note.')';}
       }
     
    /*retourne resultat final des jours et horaires et notes*/
        $jour_et_heure_ouverture_et_note[$week[$ouverture_jour_debut]][] = $day;
    }
     
    function affiche_jour_dans_bon_ordre($jour_et_heure_ouverture_et_note) {
      $output = '';
      ksort($jour_et_heure_ouverture_et_note);
      foreach ($jour_et_heure_ouverture_et_note as $days) {
        foreach ($days as $day) {
         $output.= ''.$day.'<br>';
        }
      }
      return $output;
    }
     
    $jour_et_heure_ouverture_et_note = array();
    affiche_jour_horaires_note($ouverture_jour_1_debut, $ouverture_jour_1_fin, $heure_ouverture_matin1, $heure_ouverture_apres_midi1, $note1, $jour_et_heure_ouverture_et_note);
    affiche_jour_horaires_note($ouverture_jour_2_debut, $ouverture_jour_2_fin, $heure_ouverture_matin2, $heure_ouverture_apres_midi2, $note2, $jour_et_heure_ouverture_et_note);
    affiche_jour_horaires_note($ouverture_jour_3_debut, $ouverture_jour_3_fin, $heure_ouverture_matin3, $heure_ouverture_apres_midi3, $note3, $jour_et_heure_ouverture_et_note);
    affiche_jour_horaires_note($ouverture_jour_4_debut, $ouverture_jour_4_fin, $heure_ouverture_matin4, $heure_ouverture_apres_midi4, $note4, $jour_et_heure_ouverture_et_note);
    affiche_jour_horaires_note($ouverture_jour_5_debut, $ouverture_jour_5_fin, $heure_ouverture_matin5, $heure_ouverture_apres_midi5, $note5, $jour_et_heure_ouverture_et_note);
     
    echo'
    <p>'.affiche_jour_dans_bon_ordre($jour_et_heure_ouverture_et_note).'</p>
    ';
    J'ai presque fini ce code (avec l'aide de "Sabotage" que je remercie au passage)
    Il me reste qu'un truc à faire, c'est de ne pas apparaitre $note lorsque la valeur est vide et éventuellement raccourcir la totalité du code qui est trop compliqué a cause des if et else imbriqués.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/09/2007, 22h11
  2. Switch sur plusieurs valeurs
    Par z.e.k dans le forum C++
    Réponses: 5
    Dernier message: 12/02/2007, 00h13
  3. Réponses: 16
    Dernier message: 19/07/2006, 01h16
  4. [HashMap] Tri sur plusieurs valeurs
    Par cosmos38240 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 03/01/2006, 15h14
  5. Condition IF sur plusieurs valeurs
    Par davelop dans le forum ASP
    Réponses: 5
    Dernier message: 10/06/2005, 12h10

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