Day34 PHP遞迴實現無限級分類

2021-07-24 04:29:51 字數 1796 閱讀 6344

在一些複雜的系統中,要求對資訊欄目進行無限級的分類,以增強系統的靈活性。那麼php是如何實現無限級分類的呢?我們在本文中使用遞迴演算法並結合mysql資料表實現無限級分類。

遞迴,簡單的說就是一段程式**的重複呼叫,當把**寫到乙個自定義函式中,將引數等變數儲存,函式中重複呼叫函式,直到達到某個條件才跳出,返回相應的資料。

首先我們準備一張資料表class,記錄商品分類資訊。表中有三個字段,id:分類編號,主鍵自增長;title:分類名稱;pid:所屬上級分類id。

class表結構:

create

table

ifnot

exists

`class` (

`id` mediumint(6) not

null auto_increment,

`title`

varchar(30) not

null,

`pid` mediumint(6) not

null

default

'0',

primary

key (`id`)

) engine=myisam default charset=utf8;

插入資料後,如圖:

根據不同的需求,我們提供兩種不同格式的自定義函式,一種是返回字串,一種是返回陣列,兩種函式都使用了遞迴方法。先看返回字串格式的函式:
function

get_str

($id = 0)

return

$str;

}

include_once('connect.php'); //連線資料庫,connect.php檔案 

echo get_str(0); //輸出無限級分類

效果如:

接著我們來看返回陣列格式的函式,一樣要使用遞迴:
function

get_array

($id=0)

return

$arr; } }

函式get_array()返回了陣列,這是我們期待的,所以筆者推薦使用get_array()得到陣列,這樣一來,我們可以對陣列進行任意操作,比如我們可以將陣列轉換成json格式的資料傳給前端頁面,前端頁面可以通過解析json資料靈活展示分類資訊。比如樹形結構的分類列表,下拉分類列表等。
include_once('connect.php'); //連線資料庫 

$list = get_array(0); //呼叫函式

print_r($list); //輸出陣列

輸出效果如:

如果要輸出json格式的資料,則可使用:

echo json_encode($list);

PHP遞迴實現無限級分類

在一些複雜的系統中,要求對資訊欄目進行無限級的分類,以增強系統的靈活性。那麼php是如何實現無限級分類的呢?我們在本文中使用遞迴演算法並結合mysql資料表實現無限級分類。在一些複雜的系統中,要求對資訊欄目進行無限級的分類,以增強系統的靈活性。那麼php是如何實現無限級分類的呢?我們在本文中使用遞迴...

PHP實現遞迴無限級分類

在一些複雜的系統中,要求對資訊欄目進行無限級的分類,以增強系統的靈活性。那麼php是如何實現無限級分類的呢?我們在本文中使用遞迴演算法並結合mysql資料表實現無限級分類。遞迴,簡單的說就是一段程式 的重複呼叫,當把 寫到乙個自定義函式中,將引數等變數儲存,函式中重複呼叫函式,直到達到某個條件才跳出...

PHP遞迴實現無限級分類

在一些複雜的系統中,要求對資訊欄目進行無限級的分類,以增強系統的靈活性。那麼php是如何實現無限級分類的呢?我們在本文中使用遞迴演算法並結合mysql資料表實現無限級分類。在一些複雜的系統中,要求對資訊欄目進行無限級的分類,以增強系統的靈活性。那麼php是如何實現無限級分類的呢?我們在本文中使用遞迴...