PHP遞迴實現無限級分類

2022-02-09 01:12:55 字數 1491 閱讀 7695

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

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

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

mysql

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

class表結構:

create table if not 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; 

插入資料後,如圖:

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

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是如何實現無限級分類的呢?我們在本文中使用遞迴...