PHP實現無限極分類

2021-07-28 18:06:51 字數 1416 閱讀 8136

<?php  

/**

* created by epp4.

* user: t470

* date: 15-08-08

* time: 上午12:00

*/

//準備陣列,代替從資料庫中檢索出的資料(共有三個必須欄位id,name,pid)

header("content-type:text/html;charset=utf-8");

$categories = 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,'name'=>'功能機','pid'=>2),

array('id'=>7,'name'=>'超級本','pid'=>3),

array('id'=>8,'name'=>'遊戲本','pid'=>3),

);

/*********************==非遞迴實現********************====*/

$tree = array();

//第一步,將分類id作為陣列key,並建立children單元

foreach($categories as $category)

//第二步,利用引用,將每個分類新增到父類children陣列中,這樣一次遍歷即可形成樹形結構。

foreach($tree as $key=>$item)

} }

第三步,刪除無用的非根節點資料

foreach($tree as $key=>$category)

} print_r($tree);

/*********************==遞迴實現********************====*/

$tree = $categories;

function get_attr($a,$pid)

$tree = $v; //將記錄存入新陣列

} }

return $tree; //返回新陣列

} echo "

";

print_r(get_attr($tree,0));

?>

php實現無限極分類

利用兩個for迴圈實現無限級分類 表 欄位名字段型別 備註預設值 idint 主鍵 auto increment name varchar 分類名稱 pidint 父類id0 頂級分類的 pid 預設就是0了。當我們想取出某個分類的子分類樹的時候,基本思路就是遞迴,當然,出於效率問題不建議每次遞迴都...

php實現無限極分類

最近在負責報表自動化管理的小功能,想從工作內容中整理點東西形成部落格。但是過程中發現,這功能並沒有 實現上的難點。基本上值得說的地方,也就定時任務的合理設計,而定時任務之前有相關的博文。再有就是,開發思路和資料庫合理的設計。這部分也不好形成文章。但是好久沒有寫部落格,希望能堅持下來。想起之前寫過幾個...

php實現無限極分類

面試的時候被問到無限極分類的設計和實現,比較常見的做法是在建表的時候,增加乙個pid欄位用來區別自己所屬的分類 array array array id 1,pid 0,name 河北省 array id 2,pid 0,name 北京市 array id 3,pid 1,name 邯鄲市 arra...