Puedes usar un poco de recursividad para llegar a más niveles.
function echo_menu($menu_array) {
//go through each top level menu item
foreach($menu_array as $menu) {
echo "<li><a href='{$menu['link']}'>{$menu['titulo']}</a>";
//see if this menu has children
if(array_key_exists('children', $menu)) {
echo '<ul>';
//echo the child menu
echo_menu($menu['children']);
echo '</ul>';
}
echo '</li>';
}
}
echo '<ul>';
echo_menu($menu_array);
echo '</ul>';
Esto funcionará para cualquier número de niveles de niños que desee.