在我們工作中,無限級分類應用非常多,其實其思想並不難,無非運用遞迴思想自己呼叫自己罷了。下面就來看看我寫的無限級分類函式:
header("content-type:text/html;charset=utf-8");
//測試陣列
$arr=array
( array('id'=>2,'name'=>'分類2','parent_id'=>1),
array('id'=>9,'name'=>'分類9','parent_id'=>8),
array('id'=>1,'name'=>'分類1','parent_id'=>0),
array('id'=>7,'name'=>'分類7','parent_id'=>0),
array('id'=>3,'name'=>'分類3','parent_id'=>2),
array('id'=>4,'name'=>'分類4','parent_id'=>0),
array('id'=>6,'name'=>'分類6','parent_id'=>5),
array('id'=>8,'name'=>'分類8','parent_id'=>7),
array('id'=>5,'name'=>'分類5','parent_id'=>4)
);/**
* 已知子類id 得到父類樹形結構
* @param [type] $data [要查詢的陣列]
* @param [type] $id [子類id]
* @param integer $level [縮排係數]
* @param boolean $isclear [呼叫時為true,多次呼叫不相互疊加]
* @return [type] [返回結果樹形結構]
*/function getparent($data, $id, $level = 0, $is_clear = false)
foreach ($data as $k => $v) }}
$rec = array_reverse($_rec);
for ($i=0; $i$v)
}return $rec;
}/**
* 已知父類id,得到子類id樹形結構;區別在於$row=$v['id'],只賦值id;
* getparent(),可改寫成getparentid();
* @param [type] $data [description]
* @param [type] $id [description]
* @param boolean $col [description]
* @return [type] [description]
*/ function getchildsid($data,$id,$col=false)
}return $row;
}/** * 已知父類id,得到樹形結構;
* 結合getparent(),若不彈出自己,即已知子類id,得到樹形結構
* @param [type] $data [description]
* @param [type] $parent_id [description]
* @param integer $level [description]
* @param boolean $col [description]
* @return [type] [description]
*/function tree($data,$parent_id,$level=0,$col=false)
}return $res;
}
PHP無限級分類
建表sql如下 create table ifnot exists deepcate id int 4 notnull pid int 11 notnull catename varchar 30 not null cateorder int 11 unsigned notnull default ...
PHP 無限級分類 遞迴
arr array array id 1,name 電腦 pid 0 array id 2,name 手機 pid 0 array id 3,name 筆記本 pid 1 array id 4,name 台式電腦 pid 1 array id 5,name 智慧型機 pid 2 array id 6...
PHP遞迴實現無限級分類
在一些複雜的系統中,要求對資訊欄目進行無限級的分類,以增強系統的靈活性。那麼php是如何實現無限級分類的呢?我們在本文中使用遞迴演算法並結合mysql資料表實現無限級分類。在一些複雜的系統中,要求對資訊欄目進行無限級的分類,以增強系統的靈活性。那麼php是如何實現無限級分類的呢?我們在本文中使用遞迴...