1

ネストされた配列があり、それを順序付けられていないリストに変換しようとしています:

[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 ループ内のクエリを検討しましたが、それは非常に非効率的である可能性があると考えました。

4

2 に答える 2

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>
于 2013-07-21T18:17:44.450 に答える
0

3 番目のループを追加する必要があります。

   <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>
于 2013-07-21T18:17:48.550 に答える