$menu['title'], 'icon' => $menu['icon'] ?? '', 'url' => $menu['url'] ?? '', ]; if (!empty($menu['children'])) { $node['children'] = self::buildMenuTree($menu['children']); } $tree[] = $node; } return $tree; } /** * 根据ID获取菜单 */ public static function getMenuById(int $menuId): ?array { return self::findMenuInTree(self::getAllMenus(), $menuId); } /** * 在菜单树中查找指定ID的菜单 */ private static function findMenuInTree(array $menus, int $menuId): ?array { foreach ($menus as $menu) { if ($menu['id'] == $menuId) { return $menu; } if (!empty($menu['children'])) { $found = self::findMenuInTree($menu['children'], $menuId); if ($found) { return $found; } } } return null; } }