以下是一个PHP实现无限分级菜单的示例代码:

  1. 创建数据库表

CREATE TABLE menu ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(255) NOT NULL, parent_id int(11) DEFAULT NULL, PRIMARY KEY (id) );

  1. 插入数据

INSERT INTO menu (id, name, parent_id) VALUES (1, '菜单1', NULL), (2, '菜单2', NULL), (3, '子菜单1', 1), (4, '子菜单2', 1), (5, '子菜单3', 2), (6, '子菜单4', 2), (7, '子菜单5', 3), (8, '子菜单6', 3);

  1. PHP代码实现
$row['id'], 'name' => $row['name'], 'parent_id' => $row['parent_id'], 'children' => array() ); } // 构建菜单树 $tree = array(); foreach ($menu as $id => &$menuItem) { if ($menuItem['parent_id']) { $menu[$menuItem['parent_id']]['children'][] = &$menuItem; } else { $tree[] = &$menuItem; } } // 递归输出菜单树 function printTree($tree, $level = 0) { foreach ($tree as $menuItem) { echo str_repeat('-', $level * 4) . $menuItem['name'] . "\n"; if (!empty($menuItem['children'])) { printTree($menuItem['children'], $level + 1); } } } // 输出菜单树 printTree($tree); // 关闭数据库连接 mysqli_close($conn); ?>

以上代码将输出以下菜单树:

菜单1 ----子菜单1 --------子菜单5 --------子菜单6 ----子菜单2 菜单2 ----子菜单3 ----子菜单4

说明:该示例代码使用mysqli连接MySQL数据库,并使用递归算法构建菜单树,并输出菜单树。可以根据实际情况修改数据库连接信息和SQL查询语句。

php-写-无限分级菜单

原文地址: https://www.cveoy.top/t/topic/rM4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录