2013-07-21 75 views
1

我有一个嵌套的数组,我希望把它变成一个无序列表:嵌套阵3级无序列表

[2009] => Array 
    (
     [Show Name 1] => Array 
      (
       [0] => Class 1 
       [1] => Class 2 
      ) 

    ) 

[2008] => Array 
    (
     [Show Name 2] => Array 
      (
       [0] => Class 1 
       [1] => Class 2 
      ) 

    ) 

并把它转换成:

2009 
    Show Name 1 
     Class 1 
     Class 2 
2008 
    Show Name 2 
     Class 1 
     Class 2 

到目前为止,我有部分管理它,通过能够显示年,但在那之后我得到“阵”,其中的节目名称应该是:

2012 
    Array 
    Array 
2009 
    Array 
2008 
    Array 

我做了使用以下:

<ul> 
    <?php foreach($results as $year => $shows): ?> 
    <li><?= $year ?> 
     <ul> 
     <?php foreach($shows as $show): ?> 
     <li><?= $show ?></li> 
     <?php endforeach; ?> 
     </ul> 
    </li> 
    <?php endforeach; ?> 
</ul> 

更新

我需要抢YEAR_ID,SHOW_ID,为类标识码每个结果,让我可以将它们传递到一个URL。像这样:

 <ul class="no-bullet"> 
     <?php foreach($results as $year => $shows): ?> 
     <li><h2><?= $year ?></h2> 
      <ul class="no-bullet"> 
      <?php foreach($shows as $show_name => $show): ?> 
      <li><h4><?= $show_name ?></h4></li> 
       <ul class="no-bullet"> 
         <?php foreach($show as $class): ?> 
         <li><a href="results.html?year=$yearid&show=$showid&class=$classid"><?= $class ?></a></li> 
         <?php endforeach; ?> 
       </ul> 
      <?php endforeach; ?> 
      </ul> 
     </li> 
     <?php endforeach; ?> 
    </ul> 

但是,我还没有从哪里开始foggiest。我在foreach循环中考虑了一个查询,但认为这可能效率很低?

回答

1

您需要治疗$show作为一个数组,只是提取你想要的部分,像这样:

<ul> 
    <?php foreach($results as $year => $shows): ?> 
    <li><?= $year ?> 
     <ul> 
     <?php foreach($shows as $show_name => $show): ?> 
     <li><?= $show_name ?> 
      <ul> 
        <?php foreach($show as $class): ?> 
        <li><?= $class ?></li> 
        <?php endforeach; ?> 
      </ul> 
     </li> 
     <?php endforeach; ?> 
     </ul> 
    </li> 
    <?php endforeach; ?> 
</ul> 
+0

点上!为了教育目的...它怎么知道$ class是什么?由于它没有在任何地方定义? – Coffeee

+0

啊,但它被定义;)它在'foreach'循环中。 'foreach($ show as $ class)'表示需要'$ show'数组,并将元素的内容赋值给数组中每个元素的'$ class'变量。 – SharkofMirkwood

+0

添加到:循环本身定义'$ class'数组。 – SharkofMirkwood

0

您应该添加第三环:

<ul> 
    <?php foreach($results as $year => $shows): ?> 
    <li><?= $year ?> 
     <ul> 
     <?php foreach($shows as $showname=>$show_list): ?> 
      <li><ul> 
      <?php foreach($show_list as $show): ?> 
       <li><?= $show ?></li> 
      <?php endforeach; ?> 
      </ul> 
     <?php endforeach; ?> 
     </ul> 
    </li> 
    <?php endforeach; ?> 
</ul>