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);

现在在 2D 数组中使用 mysql 获取结果,如下所示

array(
             Menu0(
                   sub1,
                   sub2,
                   sub3
                   )

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

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