parcourir un tableau

Eléphant du PHP | 107 Messages

05 oct. 2009, 15:22

bonjour je voudrais parcourir ce tableau :

Code : Tout sélectionner

print_r($maTab); Array ( [0] => Array ( [0] => 1 [1] => Taille [2] => 3 cm ) )
pour l'afficher apres dans un tableau(<table></table>) sur une meme ligne comme ceci
1 Taille 3cm

j'ai fait comme ça mais l'affichage me retourne 3 lignes
foreach($maTab as $valeur)
	{
	  foreach($valeur as $key=>$value)
	  {
<table>
<td width="30%" class="textalignright labelitalic">
	        <?php if($key==1) echo $valeur[$key] ?>
			</td>
			<td width="4%"> </td>
			<td width="30%"  class="textalignleft labelbold">
			<?php if($key==2) echo $valeur[$key] ?>
			</td>
</table>
          }
}
merci pour votre conseil

Mammouth du PHP | 991 Messages

05 oct. 2009, 16:23

Procède plutot ainsi ;)
foreach($maTab as $valeur)
	{
	  
<table>
<td width="30%" class="textalignright labelitalic">
	        <?php echo $valeur[1] ?>
			</td>
			<td width="4%"> </td>
			<td width="30%"  class="textalignleft labelbold">
			<?php echo $valeur[2] ?>
			</td>
</table>
          
}
Comme ca tu auras bien une et une seule ligne ;) , et non 3 comme tout à l'heure ou tu demandé a PHP de parcourir le sous tableau , et tout afficher ;)

Bye Hawk
DevOps, Symfony4, Hoa

ViPHP
AB
ViPHP | 5818 Messages

05 oct. 2009, 17:05

thehawk a donné le principe.

Mais comme dans l'exemple que tu as donné il manque la première valeur.

Et puis tu oublies qu'un tableau se construit avec des lignes (<tr>') avant d'incorporer des cellules (<td>).

En toute logique si tu travailles en pourcentage avec les largeur de cellules, la somme des cellules constituant le tableau doit faire 100%.

Enfin cela ne coûte pas cher de vérifier l'existence des variables avant de les afficher.

Donc plus "proprement" :
<?php
foreach($maTab as $valeur)
{ ?>
         
<table style="width:300px">
<tr>

<td width="40%" class="textalignright labelitalic" style="border:1px solid black">
<?php echo isset($valeur[0])? $valeur[0] : ''  ?>
</td>

<td width="20%" style="border:1px solid black"> 
<?php echo isset($valeur[1])? $valeur[1] : ''  ?>
</td>

<td width="40%"  class="textalignleft labelbold" style="border:1px solid black">
<?php echo isset($valeur[2])? $valeur[2] : ''  ?>
</td>

</tr>
</table>
         
<?php } ?>
J'ai ajouté style="border:1px solid black" uniquement pour voir la disposition des cellules en phase de développement