遞迴的一些應用(二)無限極分類

2022-07-15 19:54:09 字數 3156 閱讀 4589

用遞迴的方法實現無限極分類

通常我在寫專案的時候,在寫一些例如**分類的時候會實現對應分類的上級分類,或者其它專案部門管理的上級部門的時候一般就會用到無限極分類來進行分類

第一步:首先在資料表設計的時候,如果要實現無限極分類,一般我會在資料表多新增乙個欄位pid,下面我通過一張新建的資料表來說明一下,

(1)建表:

-- table structure for pid

drop table if exists `pid`;

create table pid (

id tinyint unsigned not null auto_increment primary key comment '主鍵id',

name varchar(32) not null,

nickname varchar(32) default null,

pid tinyint(10) unsigned default null,

sort mediumint(10) unsigned default 50

) engine=innodb  default charset=utf8;

(2)插入資料:

-- records of pid

insert into `pid` values ('1', '科技', '', '0', '50');

insert into `pid` values ('2', '軍事', '', '0', '50');

insert into `pid` values ('3', '人與自然', '', '0', '50');

insert into `pid` values ('4', '美食', '', '0', '50');

insert into `pid` values ('5', '人工智慧', '', '1', '50');

insert into `pid` values ('6', '機械人', '', '5', '50');

insert into `pid` values ('7', '無人飛機', '', '5', '50');

insert into `pid` values ('8', '無人汽車', '', '5', '50');

insert into `pid` values ('9', '軍事機械人', '哈哈', '6', '50');

insert into `pid` values ('10', '服務機械人', '', '6', '50');

insert into `pid` values ('11', '航母', '', '2', '50');

insert into `pid` values ('12', '艦載機', '', '2', '50');

insert into `pid` values ('13', '預警機', '', '2', '50');

insert into `pid` values ('14', '飛彈', '', '2', '50');

insert into `pid` values ('15', '舌尖上的中國', '', '3', '50');

insert into `pid` values ('16', '川菜', '', '15', '50');

insert into `pid` values ('17', '粵菜', '', '15', '50');

insert into `pid` values ('18', '湘菜', '', '15', '50');

insert into `pid` values ('19', '生物', '', '4', '50');

insert into `pid` values ('20', '動物', '', '19', '50');

insert into `pid` values ('21', '植物', '', '19', '50');

insert into `pid` values ('26', '哈哈', '哈哈', '0', '50');

insert into `pid` values ('27', '嘿嘿嘿', '嘿嘿嘿', '26', '50');

insert into `pid` values ('28', '噓噓噓', '噓噓噓', '26', '50');

資料表:

資料表大概就是這樣。

第二步:進入正題,無限極分類

<?php 

//設定字符集

header('

content-type:text/html;charset=utf-8');

/*** 無限極分類

* @param $list array()

* return array */

//無限極分類,實現具有父子關係的資料分類

function category($arr,$pid=0,$level=0

) }

return $list;//

遞迴出口

連線資料:

效果:

2.乙個小擴充套件:

這只是我自己理解的無限極分類,對於自己知識點的一些總結。有不妥的地方大家希望大家給些建議,共同學習,共同進步。thanks~

用遞迴的方法實現無限極分類

通常我在寫專案的時候,在寫一些例如 分類的時候會實現對應分類的上級分類,或者其它專案部門管理的上級部門的時候一般就會用到無限極分類來進行分類 第一步 首先在資料表設計的時候,如果要實現無限極分類,一般我會在資料表多新增乙個欄位pid,下面我通過一張新建的資料表來說明一下,1 建表 table str...

乙個無限極分類的類(遞迴的思想)

無限極分類 類 header content type text html charset utf 8 class category return arr 組合多維陣列 static public function unlimitedforlayer cate,name child pid 0 re...

遞迴的一些應用

遞迴 簡單來說就是自己呼叫自己。下面用乙個簡單的例子說明遞迴的主要步驟 include void up and down int intmain void void up and down int n printf level d n location p n n,n level 1 n locat...