Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- include 'mydb.php';
- $db = new DB;
- $result = $db->table('menu')->select('*')->results();
- function buildMenu($array) {
- $refs = [];
- foreach ($array as $data) {
- $thisref = &$refs[ $data->id ];
- $thisref['id'] = $data->id;
- $thisref['parent_id'] = $data->parent_id;
- $thisref['name'] = $data->name;
- if ($data->parent_id == 0) {
- $list[ $data->id ] = &$thisref;
- } else {
- $refs[ $data->parent_id ]['children'][ $data->id ] = &$thisref;
- }
- }
- return $list;
- }
- function listMenu($list) {
- // echo '<pre>', print_r($list), '</pre>';
- if (is_array($list)) {
- $html = '<ul>';
- foreach ($list as $item) {
- $html .= '<li><a href="item.php?id='. $item['id'] .'">' . $item['name'] . '</a>';
- if (!empty($item['children'])) {
- $html .= listMenu($item['children']);
- }
- $html .= '</li>';
- }
- $html .= '</ul>';
- }
- return $html;
- }
- echo '<pre>', print_r($list = buildMenu($result)) , '</pre>';
- ?>
- <!DOCTYPE html>
- <head>
- <title>Menu List</title>
- <meta charset="UTF-8">
- </head>
- <style>
- * {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
- }
- ul {
- display: block;
- width: 100%;
- list-style: none;
- }
- ul > li {
- display: inline-block;
- padding: 5px 15px;
- float: left;
- }
- ul > li > ul {
- display: inline-block;
- width: 100%;
- }
- ul > li > ul li {
- width: 100%;
- float: none;
- }
- </style>
- <body>
- <div class="nav">
- <ul>
- <?php echo listMenu($list); ?>
- </ul>
- </div>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement