Вложенный массив в 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 ): ?-->
 
 <!--?php endforeach; ?-->
 </ul>
 </li>
 <!--?php endforeach; ?-->
</ul>

Обновить

Мне нужно захватить YEAR_ID, SHOW_ID, CLASS_ID для каждого результата, чтобы я мог передать их в URL. Что-то вроде:

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

Тем не менее, я не знаю, с чего начать. Я рассмотрел запрос в цикле foreach, но понял, что может быть довольно неэффективным?

2 ответа

Вам нужно обработать $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 ): ?-->
 
 <!--?php endforeach; ?-->
 </ul>
 </li>
 <!--?php endforeach; ?-->
 </ul>
 </li>
 <!--?php endforeach; ?-->
</ul>


Вы должны добавить третий цикл:

<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 ): ?-->
 
 <!--?php endforeach; ?-->
 </ul>
 <!--?php endforeach; ?-->
 </li></ul>
 </li>
 <!--?php endforeach; ?-->
</ul>

licensed under cc by-sa 3.0 with attribution.