<?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...