0

UL 内の UL に問題があります。foreach で実行されるドロップダウン メニューです。

これはHTMLです:

<ul>
    <li class='a1'>Menu
        <ul class="sub"><li>Sub 1</li><li>Sub 2</li><li>Sub 3</li></ul>
    </li>

そして、これはPHPです:

        if($result) {
            $i = 0;
            foreach($result as $r) {
                $i++;
                echo utf8_encode("
                    <li class='a".$i."'>".$r['nm_categoria']."</li>
                ");
            }
        }

これを行う方法がわかりません。

4

1 に答える 1

0
Use recursion:

$i = 0;
function makeUL($data)
{
    $menu= '<ul>';
    foreach ($data as $item)
    {
       $menu .= '<li class="a'.$i++.'" >';
       $menu .= is_array($item) ? makeUL($item) : utf8_encode($item);
       $menu .= '</li>';
    }
    $menu.= '</ul>';
    return $menu;
}

echo makeUL($result);

mysql fetch を使用すると、以下のような 2D 配列になります

array(
             Menu0(
                   sub1,
                   sub2,
                   sub3
                   )

             Menu1(
                   sub1,
                   sub2,
                   sub3
                   )
             Menu2,
             Menu3,

             Menu4(
                   sub1,
                   sub2,
                   sub3
                   )
)
于 2013-05-09T20:44:43.180 に答える