2013-03-12 100 views
1

我周圍看了一下,但我不知道我能找到一個明確的答案,所以我很抱歉,如果我錯過了合適的崗位,請聯繫我吧:)PHP打印多維數組HTML

我正在創建一個腳本來搜索文件夾中的更多文件夾,並將每個文件夾中所有文件的列表編譯成多個數組。該文件夾的名稱將是隨機的,所以我有點迷失在如何使用foreach循環提取它們。

我還對「[0] => Array」中的第二個數組感到困惑。從我的劇本我的輸出數據目前看起來是這樣的:

Array 
(
    [0] => Array 
     (
      [folders] => Array 
       (
        [album 1] => Array 
         (
          [0] => wallpaper-1089283.jpg 
          [1] => wallpaper-2549931.png 
          [2] => wallpaper-379108.jpg 
          [3] => wallpaper-38130.jpg 
         ) 

        [album 2] => Array 
         (
          [0] => ns75FqFLk1v6jEmecgu25IOk8yB.jpg 
          [1] => wallpaper-1627330.jpg 
          [2] => wallpaper-1629402.jpg 
         ) 

        [album 3] => Array 
         (
          [0] => wallpaper-1042083.jpg 
          [1] => wallpaper-176023.jpg 
          [2] => wallpaper-2624435.jpg 
         ) 

       ) 

     ) 

) 

所以我真的希望這些數據輸出到一些HTML像下面。我還沒有真正做了很多工作,多陣列,我希望我可以學到:)

<div> 
    <img src="image.jpg"/> 
    <img src="image.jpg"/> 
    <img src="image.jpg"/> 
</div> 
<div> 
    <img src="image.jpg"/> 
    <img src="image.jpg"/> 
    <img src="image.jpg"/> 
</div> 
<div> 
    <img src="image.jpg"/> 
    <img src="image.jpg"/> 
    <img src="image.jpg"/> 
</div> 
+1

看看foreach控制結構:http://php.net/manual/es/control-structures.foreach.php。 – jlasarte 2013-03-12 15:27:27

回答

2
foreach ($array[0]['folders'] as $albumID => $images) { 
    ... <div> ... 
    foreach($images as $img) { 
     .... <img> here ... 
    } 
    .... </div> 
} 
+0

爲什麼不只是一個遞歸函數,如果OP在多個子文件夾中有文件? – Peon 2013-03-12 15:28:16

+0

然後OP應該提到這一點。如果不需要,我不打算構建過於複雜的「快速和骯髒」示例。 – 2013-03-12 15:29:48

+0

@DainisAbols Yumm!遞歸函數 – 2013-03-12 15:30:02

0
foreach($array[0]['folders'] as $albumarray) 
{ 
    echo "<div>"; 
    foreach(albumarray as $img) 
    { 
    echo '<img src="'.$img.'"/>' 
    } 
    echo "</div>"; 
} 
0

試試這個:

foreach($data as $singleFolder) { 
    echo '<div>'; 
    foreach($singleFolder as $img){ 
    echo "<img src='$img' />"; 
    } 
    echo '</div>' 
} 
0
$array = array(
    0 => array(
     'folders' => array(
      'album 1' => array(
       0 => 'wallpaper1.jpg', 
       2 => 'wallpaper1.jpg', 
       3 => 'wallpaper1.jpg', 
      ), 
      'album 2' => array(
       0 => 'wallpaper1.jpg', 
       2 => 'wallpaper1.jpg', 
       3 => 'wallpaper1.jpg', 
      ), 
      'album 3' => array(
       0 => 'wallpaper1.jpg', 
       2 => 'wallpaper1.jpg', 
       3 => 'wallpaper1.jpg', 
      ) 
     ) 
    ) 
); 

$output = ''; 

foreach ($array[0]['folders'] as $key => $value) { 
    $output .= '<div>\n'; 

    foreach ($value as $file) { 
     $output .= '\t<img src="'.$file.'" />\n'; 
    } 

    $output .= '</div>\n'; 
} 

echo $output; 
0

試着這麼做這個。

$albums = $array[0]['folders']; 
foreach ($album as $img_array) 
{ 
    echo "<div>"; 
    foreach ($img_array as $img) 
    { 
     echo "<img src='".$img."'/>"; 
    } 
    echo "</div>"; 
}