我有一个如下所示的数据库:
我可以使用以下代码从此菜单生成一棵树:
foreach($categories->result_array() as $category):
$menu_array[$category['id']] = array('name' => $category['name'], 'parent' => $category['parent'], 'id' => $category['id']);
endforeach;
echo '<ul>';
echo $this->tasks->generateCategoriesTree(NULL, $menu_array);
echo '</ul>';
这是上面代码调用的函数:
function generateCategoriesTree($parent, $menu_array, $result = NULL)
{
foreach($menu_array as $key => $value):
if ($value['parent'] == $parent):
$result .= '<li>';
$result .= '<a href="#">' . $value['name'] . '</a>';
$result .= '<ul>';
$result .= $this->generateCategoriesTree($key, $menu_array);
$result .= '</li></ul>';
endif;
endforeach;
return $result;
}
它生成一棵如下所示的树:
我现在的问题是让父类别加粗。在我的数据库中,作为父行的行的父列为 NULL
。我尝试了一些方法,例如 if ($value['parent'] !== $parent)
然后应用粗体样式,但这不起作用。老实说,我无法理解这一点。我将不胜感激你们能提供的任何帮助!
最佳答案
如果父级等于 NULL,我会将其设置为粗体。我不确定语法的使用,因为我通常使用括号作为 if 结构。
function generateCategoriesTree($parent, $menu_array, $result = NULL)
{
foreach($menu_array as $key => $value):
if ($value['parent'] == $parent):
$result .= '<li>';
if($value['parent'] == NULL):
$result .= '<a class="BOLDCLASS" href="#">' . $value['name'] . '</a>';
else:
$result .= '<a href="#">' . $value['name'] . '</a>';
endif;
$result .= '<ul>';
$result .= $this->generateCategoriesTree($key, $menu_array);
$result .= '</li></ul>';
endif;
endforeach;
return $result;
}
当然,您必须使用一些样式来使类BOLDCLASS变为粗体。
关于php - 如果 foreach 循环中的值不相等,则尝试执行某些操作,但未获得预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10389713/