W takim razie daję całość poprawioną dla potomnych

Kontroler:
$group_categories = array(); $categories = $this->categories_MD->get();
if($categories->num_rows() > 0)
{
foreach($categories->result_array() as $cat)
{
if($cat['parent_cat_id'] == 0)
{
$group_categories[$cat['id']] = array( 'name' => $cat['name'],
);
}
else
{
$group_categories[$cat['parent_cat_id']]['sub'][] = array( 'id' => $cat['id'],
'name' => $cat['name'],
);
}
}
}
Widok:
<?php
if(!empty($group_categories)) { foreach($group_categories as $parent_category) {
echo '<li>'.$parent_category['name']; if(!empty($parent_category['sub'])) {
foreach($parent_category['sub'] as $sub_category)
{
echo '<li>'.$sub_category['name'].'</li>'; }
}
}
}
?>
Mam nadzieję, że wszystko jest już poprawnie napisane

Całość pisana na frameworku CodeIgniter.