菜单树生成的递归
在您的情况下,您有一个数据库结构,其中类别有一个“根”字段指示其父类别。您想要的 HTML 输出涉及表示类别层次结构的嵌套列表。为此,可以使用递归 PHP 函数。
这是一个示例函数:
function recurse($categories, $parent = null, $level = 0) {
$ret = '';
foreach ($categories as $index => $category) {
if ($category['root'] == $parent) {
$ret .= '' . $category['name'] . '
';
$ret .= $this->recurse($categories, $category['id'], $level 1);
$ret .= ' ';
}
}
return $ret . '
';
}
此函数假设根类别有一个值为空值的“根”字段。它遍历类别,根据“根”字段识别子类别,并使用嵌套列表构建 HTML。
要使用此函数:
或者,您可以修改函数以避免空列表,方法是在创建列表之前检查类别是否有子类别:
function recurse($categories, $parent = null, $level = 0) {
$ret = '';
foreach ($categories as $index => $category) {
if ($category['root'] == $parent) {
$ret .= '' . $category['name'] . '
';
$sub = $this->recurse($categories, $category['id'], $level 1);
if ($sub != '
') {
$ret .= $sub;
}
$ret .= ' ';
}
}
return $ret . '
';
}
此修改后的函数仅在类别至少有一个子类别时才会创建列表。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3