2013-03-12 104 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>"; 
}