Если есть возможность изменить структуру массива, то я бы делал как-то так:
function array2Menu($items, $level = 0) {
$result = '';
foreach ($items as $item) {
$class= ""; // впишите свои классы в зависимости от $level
$result .= "<li class=\"$class\"><a href=\"{$item['code']}\">{$item['name']}</a>";
if (!empty($item['childs'])) {
$result .= array2Menu($item['childs'], $level + 1);
}
$result .= "</li>";
}
return "<ul class=\"level$level\">$result</ul>"; // тоже впишите свои классы в зависимости от $level
}