Tableau de tableau en php

Fermé
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 - 15 janv. 2008 à 11:42
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 15 janv. 2008 à 14:01
Bonjour,


print_r($result);print("<br>");
print_r($matrice);
print("<br>");
$tab_enz=array();
for($i=0;$i<count($result);$i++)
{
if($matrice[$i][1]==$k) //remarque$k=3
{ $tab_enz[$i]=array("".$matrice[$i][0]."","".$matrice[$i][1]."");
print("l'enzyme <b>".$tab_enz[$i][0]."</b> est présente au sein des <b>".$tab_enz[$i][1]."</b> sous unités.<br>");//verif
}
}
print_r($tab_enz);
print(count($tab_enz));
print("<br>");

Jusq'içi tout va bien. Jobtiens:
Array([0]=>DO[1]=>RE[2]=>MI[3]=>FA[4]=>SOL[5]=>LA[6]=>SI[7]=>LOL[8]=>POU)
Array([0]=>Array([0]=>DO[1]=>2)Array([1]=>Array([0]=>RE[1]=>1)Array([2]=>Array([0]=>MI[1]=>2)
Array([3]=>Array([0]=>FA[1]=>2)Array([4]=>Array([0]=>SOL[1]=>2)Array([5]=>Array([0]=>LA[1]=>3)
Array([6]=>Array([0]=>SI[1]=>3)Array([7]=>Array([0]=>LOL[1]=>3)Array([8]=>Array([0]=>POU[1]=>2))
l'enzyme A est présente au sein des 3 sous unités.
l'enzyme B est présente au sein des 3 sous unités.
l'enzyme C est présente au sein des 3 sous unités.
Array([5]=>Array([0]=>A[1]=>3)[6]=>Array([0]=>B[1]=>3)[7]=>Array([0]=>C[1]=>3))3

Mon problème vient du fait que lorsque je veux afficher chaque élement avec leur valeur respective c'est à dire A: 3 B: 3 et C: 3.
je n'y arrive pas ; comment afficher un tableau de tableau?

Voiçi ce que je fais:
for($i=0;$i<count($tab_enz);$i++)
{
print("".$tab_enz[$i][0].": ".$tab_enz[$i][1]."<br>");

//ou encore print("".$tab_enz[$i][0][0].": ".$tab_enz[$i][0][1]."<br>");
}
Rien ne s'affiche!!!!!!!!!

3 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
15 janv. 2008 à 11:47
salut,

as-tu essayé le 'foreach()' ?

<?php
foreach( $tableaux as $tableau ) // on sort les tableau un à un
{
       foreach( $tableau as $ligne ) // dans chaque tableau on sort toutes les lignes
       {
              print_r( $ligne );
       }
}

?>


Pontarose est de retour avec ses petites bêtes, j'vais encore rien comprendre…
(ô_O)'
7
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 2
15 janv. 2008 à 13:46
Merci beaucoup Dalida cela marche avec foreach
Mais comment afficher que les élements A B et C sans leur valeur respective?( cette fois-ci je suis dans le cas ou je ne veux pas afficher toutes la lugne mais seulement un élement de la ligne)

Oui comme tu dis: "Pontarose est de retour avec ses petites bêtes, j'vais encore rien comprendre…
(ô_O)'"

Je vais essayer de mieux m'exprimer
2
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
15 janv. 2008 à 14:01
Pontarose est de retour avec ses petites bêtes, j'vais encore rien comprendre…
ce n'est pas tellement que tu expliques mal, mais les histoires de petites bêtes c'est pas évident pour tout le monde et surtout tu produis des algo de ouf (enfin pour moi qui ne fais que du PHP pépère !).

je ne vois pas ce que tu veux faire avec ton tableau.
est-ce que tu pourrais un peu plus modéliser ton tableau ?

sinon, as-tu pensé au tableau associatif ?
c'est bien pratique et ça te permet la syntaxe :
foreach( $tableau as $cle => $valeur ) //sachant que $valeur peut être lui même un tableau ça te permet de récupérer directement une valeur
{
     echo( $valeur[1] );
}

ou alors lister les éléments du tableau enfant directement dans des variables.
foreach( $tableau as $cle => $valeur )
{
     list( $var1, $var2, $var3 ) = $valeur;
     echo( $var2 );
}
2