I am creating a function that should output a nested HTML menu from an array. I want to get the following output, but I get none:
Desired output
<ol class="sortable ui-sortable">
<li id="list_77"><div>test1</div>
<ol>
<li id="list_78"><div>subtest1</div>
<ol>
<li id="list_79"><div>subtest1-1</div></li>
</ol>
</li>
</ol>
</li>
</ol>
My Data.
$item
Array
(
[77] => Array
(
[menu_id] => 77
[menu_name] => test1
[menu_parent_id] => 0
[menu_sort] => 1
[menu_link] =>
[menu_status] => 1
)
[78] => Array
(
[menu_id] => 78
[menu_name] => subtest1
[menu_parent_id] => 77
[menu_sort] => 1
[menu_link] =>
[menu_status] => 1
)
[79] => Array
(
[menu_id] => 79
[menu_name] => subtest1-1
[menu_parent_id] => 78
[menu_sort] => 1
[menu_link] =>
[menu_status] => 1
)
)
My Function
function sub($list) {
foreach($list as $key => $menu){
echo '<li class="menu_list" id="item_'.$menu['menu_id'].'">';
echo '<div>'.$menu['menu_id'].'-'.$menu['menu_name'].'-'.$list[$menu['menu_id']]."==".$parent.'</div>';
if($list[$key]['menu_parent_id']!=$parent){
echo '<ol>';
echo $list[$key]['menu_parent_id'];
echo '</ol>';
} else {
sub($list);
}
echo "</li>";
}
}
$item = array();
echo sub($item);
$parentis not defined, and you are treating$list[$menu['menu_id']]as a string. You should see errors.