我有一个嵌套数组,我想把它变成一个无序列表:
[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、CLASS_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>
但是,我不知道从哪里开始。我考虑过在 foreach 循环中进行查询,但认为这可能效率很低?
最佳答案
您需要将 $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>
关于php - 嵌套数组到 3 级无序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17775361/