UL内部的UL内部有一个

时间:2013-05-09 13:03:04

标签: php html mysql foreach html-lists

我在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>
                ");
            }
        }

我不知道如何做到这一点。

1 个答案:

答案 0 :(得分: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
                   )
)