PHP:从数组生成类别/子类别UL列表?

时间:2012-05-07 08:53:54

标签: php

我有一个填充了“Category”对象的数组,每个对象都包含一个id和一个parent_id值。他们是这样访问的:

$category->get("id"); //gets category id
$category->get("parent_id"); gets parent category id

我想制作一个像这样的HTML UL列表:

<ul>
    <li>Category</li>
    <li>Category
        <ul>
            <li>Child Category</li>
            <li>Child Category</li>
            <li>Child Category
                <ul>
                    <li>Child Category</li>
                    <li>Child Category</li>
                    <li>Child Category</li>
                </ul>
            </li>
        </ul>
    </li>
    <li>Category</li>
    <li>Category</li>
    <li>Category</li>
    <li>Category</li>
</ul>

必须采取什么样的循环来生成它?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

在不知道你正在使用什么库的情况下,它将更多地是伪代码而不是工作代码,但你应该知道如何使用递归来获取树

首先检索主要类别(例如,你可以设置类别0是最高类别。然后遍历所有项目并获取子项。如果node有子项,则递归调用自己

showCategory($rootcategory) 
function showCategory($category) {
    $children=fetchChildren();
    if($children) //if category has children
    {
      echo('<ul>');
      foreach($children as $child) {
          showCategory($child);
      }
      echo('</ul>');
    }
    else {
      echo('<li>' . $child['title'] . '</li>');
    }
}