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 :

[Tableaux] Liste et tableau de PHP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 64
    Points
    64
    Par défaut [Tableaux] Liste et tableau de PHP
    Salut, je suis débutant sur php et je m'entraine à faire des tableaux et des listes;

    Là j'ai fait un exo pour les manipuler mais je ne fais apparaitre ce que je veux, ca va surement en faire rire certain à ce niveau mais en même temps ca voudra dire qu'ilsont la réponse

    voilà mon code

    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
    $menu=array(
    			legume=>array(oignon=>1, patate=>5),
    		   	fruit=>array(pomme=>1, fraise=>5)
    			);		
     
    $prix=array(
    			oignon=>array(prixbas=>5, prixhaut=>10),
    			patate=>array(prixbas=>5, prixhaut=>10),
    			pomme=>array(prixhaut=>5, prixbas=>10),
    			fraise=>array(prixhaut=>5, prixbas=>10)
    			);
    print "<table border=5><tr><td>";
    foreach($menu as $legume=>$retlegume)
    {
    	print"$legume";
    	print"</td><td>";	
    }
    print"</td></tr><tr><td>";
    	foreach($menu[$legume] as $legume2=>$value3)	
    {
    	print"$legume2 : $value3";
    	print"</td><td>";
    }
    Tout ce passe bien sauf pour mon deuxiéme foreach. Je voudrais faire apparaitre toute les infos concernant legume et fruit, et là je ne récupére que ce qui concerne fruit.

    Est ce que quelq'un aurait une solution à mon probéme ?

  2. #2
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2004
    Messages : 97
    Points : 89
    Points
    89
    Par défaut
    Bonjour,

    C'est normal que dans 2ème foreach tu ne récupères que la dernière ligne de ton tableau $menu puisque la dernière valeur qui est attribué à la variable $legume est 'fruit' (dans ton 1er foreach)
    donc dans ton 2ème foreach tu demandes de parcourir les valeurs du tableau $menu['fruit'].

    Voici un début de solution (à mon avis il y a moyen de faire certainement beaucoup mieux !)

    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
    <?php
    $menu=array(
    	legume=>array(oignon=>1, patate=>5),
    	fruit=>array(pomme=>1, fraise=>5)
    );		
     
    $prix=array(
    	oignon=>array(prixbas=>5, prixhaut=>10),
    	patate=>array(prixbas=>5, prixhaut=>10),
    	pomme=>array(prixhaut=>5, prixbas=>10),
    	fraise=>array(prixhaut=>5, prixbas=>10)
    );
     
    echo '<table border="1" width="400">';
    //en tête du tableau
    echo '<tr>';
    $nbColonnes = count($menu);
    $nbLignes = 0;
    foreach($menu as $typeMenu=>$valeur)
    {
    	echo '<th width="200">'.$typeMenu.'</th>';
    	if (is_array($valeur) && count($valeur) > $nbLignes)
    		$nbLignes = count($valeur);
    }
    echo '</tr>';
    //contenu
    $clesMenu = array_keys($menu);
    for($l=0; $l<$nbLignes ; $l++) 
    {
    	echo '<tr>';
    	for($c=0; $c<$nbColonnes; $c++)
    	{
    		$cleMenu = $clesMenu[$c];
    		$cles = array_keys($menu[$cleMenu]);
    		$cle = $cles[$l];
    		if (isset($menu[$cleMenu][$cle])) {
    			$ligne ='<td>';
    			$ligne .=$cle.' '.$menu[$cleMenu][$cle].'<br>';
    			$ligne .='prix Haut '.$prix[$cle]['prixhaut'].'<br>';
    			$ligne .='prix Bas '.$prix[$cle]['prixbas'].'<br>';
    			$ligne .='</td>';
    			echo $ligne;
    		}
    		else
    			echo '<td>&nbsp;</td>';
    	}
    	echo '</tr>';
    }
     
    echo "</table>";
    ?>
    Bon dimanche,

    Phil

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

Discussions similaires

  1. [Tableaux] Afficher un Tableau sous PHP
    Par faressam dans le forum Langage
    Réponses: 8
    Dernier message: 14/04/2008, 12h14
  2. [Tableaux] Personnaliser un tableau en PHP
    Par L'aigle de Carthage dans le forum Langage
    Réponses: 7
    Dernier message: 04/04/2008, 11h00
  3. Réponses: 6
    Dernier message: 22/02/2008, 18h22
  4. [Tableaux] Listes déroulantes dépendantes en php
    Par rach20032 dans le forum Langage
    Réponses: 3
    Dernier message: 25/08/2007, 23h39
  5. [Tableaux] tableau en php
    Par fulgaro dans le forum Langage
    Réponses: 1
    Dernier message: 09/02/2006, 16h35

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