無限遞迴讀取選單演算法

2021-09-24 22:58:09 字數 2850 閱讀 2107

1.選單

public class menu implements ientity
2. service

@service

public class menuservice extends baseservice

// 最後的結果

listmenulist = new arraylist();

// 先找到所有的一級選單

for (int i = 0; i < rootmenu.size(); i++)

}// 為一級選單設定子選單,getchild是遞迴呼叫的

for (menu menu : menulist)

mapjsonmap = new hashmap<>();

jsonmap.put("menu", menulist);

system.out.println(gson.tojson(jsonmap));

}/**

* 遞迴計算選單

* @param parentid

* @param parentmenu

* @param rootmenu

*/private void getchild(integer parentid, menu parentmenu,listrootmenu) }}

if (childlist.size()>0)

}}

3.

listselectallmenu();}

4.

<?xml version="1.0" encoding="utf-8"?>

from menu a order by a.menu_order asc

5.表

set names utf8mb4;

set foreign_key_checks = 0;

-- ----------------------------

-- table structure for menu

-- ----------------------------

drop table if exists `menu`;

create table `menu` (

`menu_id` int(10) not null comment '主鍵id',

`menu_name` varchar(64) character set utf8 collate utf8_general_ci not null comment '選單名稱',

`parent_id` int(10) null default null comment '父選單id',

`url` varchar(100) character set utf8 collate utf8_general_ci null default null comment '訪問位址',

`icon` varchar(32) character set utf8 collate utf8_general_ci null default null comment '選單圖示',

`menu_order` tinyint(4) null default 0 comment '選單順序',

primary key (`menu_id`) using btree

) engine = innodb character set = utf8 collate = utf8_general_ci comment = '選單表' row_format = dynamic;

set foreign_key_checks = 1;

6.

insert into `menu` values (1, 'forms', null, 'forms.html', 'fa fa-edit', '0');

insert into `menu` values (2, 'ui elements', null, '', 'fa fa-wrench', '1');

insert into `menu` values (3, 'buttons', 2, 'buttons.html', '', '0');

insert into `menu` values (4, 'icons', 2, 'icons.html', null, '1');

insert into `menu` values (5, 'multi-level dropdown', null, '', 'fa fa-sitemap', '2');

insert into `menu` values (6, 'second level item', 5, 'second.html', null, '0');

insert into `menu` values (7, 'third level', 5, null, '', '1');

insert into `menu` values (8, 'third level item', 7, 'third.html', null, '0');

insert into `menu` values (9, 'third level item', 7, 'third.html', null, '0');

insert into `menu` values (10, 'third level item', 9, 'third.html', null, '0');

insert into `menu` values (11, '4444', 9, 'third.html', null, '1');

7.結果

,

, ]},

, ,]}

]}]}

]} ]

}

PHP無限遞迴選單的實現流程

這幾天看到tp裡關於無線分類搞得蠻火的,各種 亂飛。我也發布乙個我的思路。使用的是遞迴,很簡潔,十行左右。我的資料庫結構是這樣的,我的欄目只有一張表。cid fatherid name 主鍵 父欄目標識 名稱 我看到,很多教程裡說使用類似0 1 2 3這樣的路徑法,還有lv 3的層次法,其實大致都一...

vue遞迴元件實現渲染無限級子選單

最開始我的思路就是去寫js的遞迴,琢磨了半天資料是出來了,我不曉得怎麼去渲染,噗嗤,說來也尷尬,好在危難之際看見了一位大佬詳細解說,一頓操作,嘩嘩就出來了。終究還是我太菜。vue遞迴元件還是很nice的哦 首先,常規操作請求後台介面拿到資料 或者定義乙個假資料的陣列 這是我資料結構 父級陣列裡面有乙...

DROPDOWNLIST無限樹形選單

public void getsubclass dataset ds,int level,string parentid,string sign else string ls if drr3 null drr3.length 0 else lslevel if lslevel 0 lp lp dr2...