PHP無限極分類及小應用(麵包屑導航)

2021-08-26 09:38:51 字數 2004 閱讀 8050

什麼是無限級分類?

無限極分類簡單點說就是乙個類可以分成多個子類,然後乙個子類又可以分另外多個子類這樣無限分下去,就好象windows可以新建乙個資料夾,然後在這個資料夾裡又可以建一些個資料夾,在資料夾底下還可以建一些資料夾一樣

類似於下面

下面用個簡單的遞迴演算法來演示一下:

1.首先看一下資料表結構

上面這個表很簡單(cate_id是自己的id,name是代表分類名稱,parent_id是父id)

2.資料庫配置資訊

$dsn = "mysql:host=127.0.0.1;port=3306;dbname=test;charset=utf8";

$username = "root";

$password = "123456";

3.建立pdo類的物件,執行查詢的sql語句,返回結果集物件

$pdo

=new pdo($dsn,$username,$password);

$sql

="select * from daohang";

$pdostatement

=$pdo

->query($sql);

4.從結果集物件中獲取資料

$array

=$pdostatement

->fetchall(pdo::fetch_assoc);

5.獲取無限級分類資料的方法

function

tree

($array, $pid =0, $level = 0)

}//返回結果

return

$list;

}

6.獲得遞迴完的資料,遍歷生成分類,迴圈輸出結果

$array = tree($array);

foreach($array

as$key=>$value)

上面就是乙個簡單的遞迴實現的無限極分類,效果如下:

什麼是麵包屑導航呢?

下面通過乙個小例子來理解一下

資料表配置資料庫連線依舊使用上面的資源

function

daohang

($data,$pid)

}//返回結果

return

$daohang;

}

然後我們往函式裡傳資料列印一下看看

$tree = daohang($tmp,10);

var_dump($tree);

效果如下:

從上圖可以看到可以從黃框中的parent_id找到父類的cate_id

然後我們改變一下輸出格式

foreach ($tree

as$key=>$value)

之後效果如下:

現在就蠻有麵包屑導航的感覺了~

有部分思想借鑑於此無限極分類原理與實現

php無限極分類

無限級分類 param1 array categories,要分類的陣列 param2 int stop id 不需要查詢子分類的id param3 int parent id 0,要查詢父分類id 欄位名稱 param4 int level 0,當前商品分類所屬的層級 根據level計算縮排的距離...

PHP無限極分類

function gentree5 items function gentree7 items items array 1 array id 1,pid 0,name 江西省 2 array id 2,pid 0,name 黑龍江省 3 array id 3,pid 1,name 南昌市 4 arr...

PHP無限極分類

無限極分類.html 本文部落格部分內容是上述網上內容搬運過來的。無限極分類在web 中應用很多,比如無限極選單,無限極資料夾展開。因為最近的專案中有用到樹的結構,其實就是無限極選單的儲存。在某次面試中也有提及,所以這裡集合上述網上的資料總結一下。使用場景 1 需要獲取所有的節點,也就是無限極選單的...