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 :

au lieu de if elseif (avec isset) , que peut-on utiliser dans un array


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Aprenti
    Inscrit en
    Mai 2015
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Aprenti

    Informations forums :
    Inscription : Mai 2015
    Messages : 199
    Points : 140
    Points
    140
    Par défaut au lieu de if elseif (avec isset) , que peut-on utiliser dans un array
    Bonjour,
    Je trouve Je trouve le prix de toto qui est dans un array par le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $prix = $data_array['TOTO']['price'];
    Voici mon array :
    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
     [0]=>
      array(21) {
        ["service"]=>
        string(6) "manual"
        ["grams"]=>
        int(20)
    	}
      [1]=>
      &array(21) {
    	["service"]=>
        string(6) "auto"
        ["grams"]=>
        int(30)
    	}
    	 ["TOTO"]=>
      array(3) {
        ["price"]=>
        float(13.04)
        ["title"]=>
        string(3) "TOTO"
      }
    }
    Par contre le toto change selon le 'title', en fait, il n'y a que 3 bidules :

    1. TOTO
    2. TITI
    3. TATA


    et chaque fois il peut y avoir minumun 1 et max 2 bidules, par exemple :
    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
    [0]=>
      array(21) {
        ["title"]=>
        string(6) "manual"
        ["grams"]=>
        int(20)
    	}
      [1]=>
      &array(21) {
    	["title"]=>
        string(6) "auto"
        ["grams"]=>
        int(30)
    	}
    	 ["TITI"]=>
      array(3) {
        ["price"]=>
        float(73.04)
        ["title"]=>
        string(3) "TITI"
      }
    }
    ou
    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
    [0]=>
      array(21) {
        ["title"]=>
        string(6) "manual"
        ["grams"]=>
        int(20)
    	}
      [1]=>
    	 ["TATA"]=>
      array(3) {
        ["price"]=>
        float(73.04)
        ["title"]=>
        string(3) "TATA"
      }
      	["TITI"]=>
      array(3) {
        ["price"]=>
        float(73.04)
        ["title"]=>
        string(3) "TITI"
      }
    }
    Du coup, je ne peux pas utiliser le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $prix = $data_array['TOTO']['price'];
    Alors j'ai trouvé une solution (mais un peu trop de codes ):
    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
    if (isset($dataArray['TATA'])) 
    			{
    				$title_bidule = $dataArray['TATA']['title'];
    				$price_bidule = $dataArray['TATA']['price'];
     
    				$title_bidule2 = $dataArray['TATA']['title'];
    				$price_bidule2 = $dataArray['TATA']['price'];
    			} 
    		elseif (isset($dataArray['TOTO'])) 
    			{
    				$title_bidule = $dataArray['TOTO']['title'];
    				$price_bidule = $dataArray['TOTO']['price'];
     
    				$title_bidule2 = $dataArray['TOTO']['title'];
    				$price_bidule2 = $dataArray['TOTO']['price'];
    			}
    		elseif (isset($dataArray['TITI'])) 
    			{
    				$title_bidule = $dataArray['TITI']['title'];
    				$price_bidule = $dataArray['TITI']['price'];
     
    				$title_bidule2 = $dataArray['TITI']['title'];
    				$price_bidule2 = $dataArray['TITI']['price'];
    			}
    		else 
    			{
    				$title_bidule = '';
    				$price_bidule = 0;
     
    				$title_bidule2 = '';
    				$price_bidule2 = 0;
    			}
    Est-ce que vous avez une autre solution plus raffinée?

    Merci

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $arKeys = array('TOTO','TATA','TITI');
    foreach ($arKeys as $key) {
         if (isset($dataArray[$key])) {
             $title_bidule = $dataArray[$key]['title'];
    	 $price_bidule = $dataArray[$key]['price'];
             break;
        }
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Homme Profil pro
    Aprenti
    Inscrit en
    Mai 2015
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Aprenti

    Informations forums :
    Inscription : Mai 2015
    Messages : 199
    Points : 140
    Points
    140
    Par défaut
    Génial Sabotage

    Ça marche
    Donc il fallait créer un array et de mettre dedans mes bidules.

    Un grand merci

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

Discussions similaires

  1. [MySQL] problémes de champ automatique que je dois utiliser dans la forme
    Par elyakhlifi dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 08/12/2010, 16h16
  2. Que peut-on mettre dans la méthode "AfterSessionEnd" ?
    Par Juju54350 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 02/12/2010, 13h27
  3. Transform/Pivot : Que peut on mettre dans le Pivot ?
    Par Mythrandil dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 11/07/2007, 11h06
  4. Réponses: 4
    Dernier message: 07/07/2006, 15h44
  5. Que peut on utiliser à la place des popup
    Par david42 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/02/2006, 08h21

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