php - 嵌套数组到 3 级无序列表

标签 php mysql arrays

我有一个嵌套数组,我想把它变成一个无序列表:

[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/

相关文章:

arrays - 如何更新swift字典值

python - 具有特定格式的 numpy 数组的 Numpy 数组

php - 如何处理 Android 和 PHP/MySQL 之间的时区?

mysql - Sequelize - 多对多关联 - 3 个外键

php - 在 MySQL 中比较生日和年龄

mysql - 批处理文件执行的.sql文本文件中mysql的if语句

mysql - 如何合并来自同一个表的两个查询

PHP使用uasort按具有NULL的值对多维数组进行排序

php - 存储多张图像

php - 编辑值在 php 中无法正常工作