以下代码是我从phpcms的libs\function\global.func.php文件中复制来的。
function menu_level($menuid, $cache_file, $cache_path = 'commons', $key = 'catname', $parentkey = 'parentid', $linkstring = ' > ', $result=array()) { $menu_arr = getcache($cache_file, $cache_path); if (array_key_exists($menuid, $menu_arr)) { $result[] = $menu_arr[$menuid][$key]; return menu_level($menu_arr[$menuid][$parentkey], $cache_file, $cache_path, $key, $parentkey, $linkstring, $result); } krsort($result); return implode($linkstring, $result);}
只有当 $menu_arr[$menuid] 存在时,递归才会进行下去
至于 $menu_arr[$menuid] 是否存在,则取决于你的缓存文件