PHP實現遞迴無限級分類

2021-07-31 07:04:05 字數 1518 閱讀 3867

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

mysql

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

class表結構:

create table if not existsclass(

idmediumint(6) not null auto_increment,

titlevarchar(30) not null,

pidmediumint(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格式的資料,則可使用:

PHP遞迴實現無限級分類

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

PHP遞迴實現無限級分類

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

PHP遞迴實現無限級分類

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