2017-12-22 5 views
0

私は三次元の配列からHTMLリストを作成しようとしています:PHPが3D配列からHTMLリストを作成していますか?

<?php 
$items = [ 
    0 => [ 
     'id' => 100, 
     'parent_id' => 0, 
     'url' => 'Home', 
     'children' => [] 
    ], 

    1 => [ 
     'id' => 101, 
     'parent_id' => 0, 
     'url' => 'About', 
     'children' => [ 
      0 => [ 
       'id' => 102, 
       'parent_id' => 101, 
       'url' => 'About 1' 
      ], 

      1 => [ 
       'id' => 102, 
       'parent_id' => 101, 
       'url' => 'About 2' 
      ], 

      2 => [ 
       'id' => 102, 
       'parent_id' => 101, 
       'url' => 'About 3' 
      ], 
     ] 
    ], 

]; 

?> 

<?php if (count($items) > 0) { ?> 
<ul> 

    <?php foreach ($items as $item) { ?> 
    <li><?php echo $item['url'];?> 

     <?php if(count($item['children']) > 0) { ?> 
      <ul class="nested"> 
       <?php foreach ($item['children'] as $subitem) { ?> 
        <li><?php echo $subitem['url'];?></li> 
       <?php } ?> 
      </ul> 
     <?php } ?> 

    </li> 
    <?php } ?> 

</ul> 
<?php } ?> 

結果:後

<ul> 
    <li>Home</li> 
    <li>About 
     <ul class="nested"> 
      <li>About 1</li> 
      <li>About 2</li> 
      <li>About 3</li> 
     </ul> 
    </li> 
</ul> 

しかし、どのような私は:

<ul> 
    <li>Home</li> 
    <li>About 
     <ul class="nested"> 
      <li>About 1</li> 
     </ul> 
     <ul class="nested"> 
      <li>About 2</li> 
     </ul> 
     <ul class="nested"> 
      <li>About 3</li> 
     </ul> 
    </li> 
</ul> 

任意のアイデア?

または how 配列構造は、私が望むようなHTMLリストを達成するようにすべきですか?

答えて

2

このような方法で再帰を追加することはどうですか?ディメンションの深さ(3D、4Dなど)に関係なく、リストを管理します。

関連する問題