次のようなデータベースがあります。
次のコードを使用して、このメニューからツリーを生成できます。
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)
大胆なスタイルを適用するなど、いくつかのことを試しましたが、うまくいきません。正直なところ、これについて頭を悩ませることはできません。皆さんが提供できる助けをいただければ幸いです!