2010-11-07 76 views
1

我有一個這樣的數組:PHP回聲陣列幫助

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]... 
       ) 


     ) 
) 

我想呼應像這樣(注意密鑰如何分組):

<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> 

怎麼辦呢?

回答

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"; 
} 

一些假設在這裏:

  • 頂級陣列中的每個元素都會有至少一個元素作爲它的值(這樣可以從第一個元素獲得img標記的文件名)。
  • 對於頂層數組的每個元素,條目值中的文件名是相同的(如果不是,第一個可能不是正確的選擇)。
+0

感謝您花時間在您的答案中包含HTML;) – Jonathan 2010-11-07 22:42:04

0

粗糙的結構是這樣的:

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

是的,但我不知道有多少$元素[0]。我的意思是有時只是$元素[0],有時是$元素[786] – Jonathan 2010-11-07 22:04:24

+0

@Jonathan然後在他們身上做另一個'foreach' – 2010-11-07 22:06:54