如何使用<;打印链接列表;ul>;在PHP中

如何使用<;打印链接列表;ul>;在PHP中,php,codeigniter,html-lists,Php,Codeigniter,Html Lists,我想使用元素打印下表数据 #id Category Parent 1 Electronics null 2 Food null 3 TV 1 4 Burger 2 5 Cake 2 就这样, <ul> <li>Electronics <ul> <

我想使用
元素打印下表数据

#id    Category      Parent 
1      Electronics     null
2      Food            null
3      TV              1
4      Burger          2
5      Cake            2
就这样,

<ul>
    <li>Electronics
        <ul>
            <li>TV</li>
        </ul>
    </li>
    <li>Food
        <ul>
            <li>Burger</li>
            <li>Cake</li>
        </ul>
    </li>
</ul>
  • 电子学
    • 电视
  • 食物
    • 汉堡
    • 蛋糕

  • 电子学
    • 电视
  • 食物
    • 汉堡
    • 蛋糕

我正在使用Codeigniter框架(PHP)。尝试使用递归函数,但没有成功。

这是我的代码。可以对其进行优化,但目前它可以完成以下任务:):

echo'
    '; foreach(类别为$value) { 如果($value['Parent']==null) { echo“
  • ”。$value['Category']; $noChildren=true; foreach($categories作为$subValue) { 如果($subValue['Parent']==$value['id']) { 如果($noChildren==true) { $noChildren=false; 回声“
      ”; } 回显“
    • ”.$subValue['Category']。
    • ”; } } 如果($noChildren==false) { 回声“
    ”; } } } 回声“
”;
使用打印选项添加数据数组为什么不在此布局中使用
?数据在哪里?您获取了它们并保存在关联数组中了吗?是的,我将整个表数据保存在一个名为$categories@ralphmelhem的关联多维数组中,因为我需要将表数据打印在
element@rhgb中。您的解决方案给出了一个想法,尽管与我的想法类似(递归)。它不会打印整个表格。我需要一个递归解决方案。我的表数据不是固定的,它们是动态的。类别是多层次的。
echo'<ul>';
foreach($categories as $value)
{
    if($value['Parent'] == null)
    {
        echo '<li>'.$value['Category'];
        $noChildren = true;

        foreach ($categories as $subValue) 
        {
            if($subValue['Parent'] == $value['id'])
            {
                if($noChildren == true)
                {
                    $noChildren = false;
                    echo '<ul>';
                }
                echo'<li>'.$subValue['Category'].'</li>';
            }
        }

        if ($noChildren == false)
        {
            echo'</ul>';
        }
    }
}
echo'</ul>';