本文主要和大家分享Thinkphp遞迴處理之將分類依層級輸出實例,希望能幫助大家。
1.一般在資料庫中儲存分類,分類之間的關係用parent_id來識別。在開發中有時需要根據分類的級別,展示分類,如下圖:
使用遞歸方法,原始碼如下:
/** * * @param array $list 为一个二维数组,存放着所有的分类,包含的字段为(分类id,分类名,parent_id) * @param number $parent_id * @param number $level * @return Ambigous <multitype:, number> */ function find_level($list,$parent_id=0,$level=1){ foreach($list as $l){ if($l['parent_id']==$parent_id){ $l['level']=$level; $arr[]=$l; $child=$this->find_level($list,$l['cat_id'],$level+1); if(is_array($child)){ $arr=array_merge($arr,$child); } } } return $arr; }
在使用時,根據實際情況使用find_level($list) 或$this->find_level($list) 就可以了
$list=M('category')->field('cat_id,cat_name,parent_id')->select(); $list=$this->find_level($list); $this->list=$list; $this->display();
<table> <foreach name="list" item="vo"> <tr> <td> <for start="1" end="$vo['level']"> </for> {$vo.cat_name}<br/> </td> </tr> </foreach> </table>
以上是之將分類依層級輸出實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!