我有一个填充了“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>
必须采取什么样的循环来生成它?
答案 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>');
}
}