2010-11-07 10 views
1

J'ai un tableau comme celui-ci:tableau echo PHP aide

Array 
(
    [1197624] => Array 
     (
      [0] => Array 
       (
        [datetime] => 2010-11-06 21:32:56 
        [movieID] => 1197624 
        [personID] => 0 
        [filename] => 1197624.jpg 
        [more indexes]... 
       ) 
      [1] => Array 
       (
        [datetime] => 2010-11-06 21:25:53 
        [movieID] => 1197624 
        [personID] => 0 
        [filename] => 1197624.jpg 
        [more indexes]... 
       ) 
     ) 
    [0987657] => Array 
     (
      [0] => Array 
       (
        [datetime] => 2010-11-06 21:38:07 
        [movieID] => 0 
        [personID] => 0987657 
        [filename] => 0987657.jpg 
        [more indexes]... 
       ) 
      [1] => Array 
       (
        [datetime] => 2010-11-06 21:55:09 
        [movieID] => 0 
        [personID] => 0987657 
        [filename] => 0987657.jpg 
        [more indexes]... 
       ) 
     ) 
    [5467023] => Array 
     (
      [0] => Array 
       (
        [datetime] => 2010-11-06 21:59:33 
        [movieID] => 5467023 
        [personID] => 0 
        [filename] => 5467023.jpg 
        [more indexes]... 
       ) 


     ) 
) 

Je veux en faire l'écho comme celui-ci (remarquez comment les clés sont groupées):

<div> 
    <img src="../1197624.jpg" /> 
    <p>1197624</p> 
    <ul> 
    <li>2010-11-06 21:32:56</li> 
    <li>2010-11-06 21:25:53</li> 
    </ul> 
</div> 

<div> 
    <img src="../0987657.jpg" /> 
    <p>0987657</p> 
    <ul> 
    <li>010-11-06 21:38:07</li> 
    <li>2010-11-06 21:55:09</li> 
    </ul> 
</div> 

<div> 
    <img src="../5467023.jpg" /> 
    <p>5467023</p> 
    <ul> 
    <li>02010-11-06 21:59:33</li> 
    </ul> 
</div> 

Comment le faire?

Répondre

3
foreach ($array as $k => $vals) { 
    echo "<div>\n"; 
    echo " <img src=\"../" . $vals[0]["filename"] . "\" />\n"; 
    echo " <p>" . $k . "</p>\n"; 
    echo " <ul>\n"; 
    foreach ($vals as $v) { 
     echo " <li>" . $v["datetime"] . "</li>\n"; 
    } 
    echo " </ul>\n"; 
    echo "</div>\n"; 
} 

Quelques hypothèses ici:

  • Chaque élément du tableau de haut niveau aura au moins un élément comme sa valeur (afin que le nom de fichier de la balise img puisse être obtenu à partir du premier élément).
  • Pour chaque élément du tableau de niveau supérieur, les noms de fichiers dans les valeurs de l'entrée sont identiques (sinon, le premier n'est peut-être pas le bon choix).
+0

Merci d'avoir pris le temps d'inclure aussi le HTML dans votre réponse;) – Jonathan

0

La structure rugueuse ressemblera à ceci:

foreach ($array as $key => $element) 
{ 
     ... echo opening div.... 

     echo $key; // 1197624 
     ... 
     echo $element[0]["datetime"]; // 2010-11-06 21:32:56 
     echo $element[1]["datetime"]; // 2010-11-06 21:25:53 
     ... 

     ... echo closing div.... 


} 
+0

Oui, mais je ne sais pas combien $ element [0] est. Je veux dire parfois $ element [0] seulement et parfois $ element [786] – Jonathan

+0

@Jonathan puis faire un autre 'foreach' sur eux –