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

2021-08-15 04:29:05 字數 3256 閱讀 8427

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

第一步:首先在資料表設計的時候,如果要實現無限極分類,一般我會在資料表多新增乙個欄位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~

遞迴 無限極分類

遞迴無限極分類就是自身呼叫自身進行迴圈操作,有兩種辦法一種是通過等級另一種是通過資料結構進行資料迴圈 public function roles data,pid 0,levae 0 將資料轉換成陣列 d json decode json encode data true array array 將...

無限極分類,遞迴分類

有一組陣列如下 items array 1 array id 1,pid 0,name 江西省 2 array id 2,pid 0,name 黑龍江省 3 array id 3,pid 1,name 南昌市 4 array id 4,pid 2,name 哈爾濱市 5 array id 5,pid...

實現無限極分類 使用遞迴

商品分類 data 所有的分類資料 pid 父類id level 是用於區分層級關係定義的變數 function gettree data,pid 0,level 0 return arr 遞迴刪除 根據業務需求制定 function getdel data,id return arr 使用無限極分...