【问题标题】:PHP Printing a Multidimensional Array to HTMLPHP 将多维数组打印到 HTML
【发布时间】:2013-02-28 04:52:27
【问题描述】:

我环顾四周,但我不确定我能找到具体的答案,所以如果我错过了合适的帖子,我深表歉意,请给我链接:)

我正在创建一个脚本来在文件夹中搜索更多文件夹,并将每个文件夹中所有文件的列表编译成一个多数组。文件夹名称是随机的,所以我对如何使用 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>

【问题讨论】:

标签: php html multidimensional-array


【解决方案1】:
foreach ($array[0]['folders'] as $albumID => $images) {
    ... <div> ...
   foreach($images as $img) {
      .... <img> here ...
   }
   .... </div>
}

【讨论】:

  • 为什么不只是一个递归函数,以防 OP 在多个子文件夹中有文件?
  • 那么 OP 应该提到这一点。如果不需要,我不会构建一个过于复杂的“又快又脏”的示例。
  • @DainisAbols Yumm!递归函数
  • 幸运的是它不会是递归的 :P 因此不提了。谢谢大家!
【解决方案2】:
foreach($array[0]['folders'] as $albumarray)
{
  echo "<div>";
   foreach(albumarray as $img)
   {
    echo '<img src="'.$img.'"/>'
   }
   echo "</div>";
}

【讨论】:

    【解决方案3】:

    试试这个:

    foreach($data as $singleFolder) {
      echo '<div>';
       foreach($singleFolder as $img){
         echo "<img src='$img' />";
       }
      echo '</div>'
    }
    

    【讨论】:

      【解决方案4】:
      $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;
      

      【讨论】:

        【解决方案5】:

        试试这样的。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-03-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-07
          • 2014-06-13
          • 1970-01-01
          相关资源
          最近更新 更多