/**利用函數遞迴的思想建立一個函數實現無限分類的功能*其實就是以每條資料的f_id父id作為根節點,進行資料的串聯,再以根節*點向下尋找***舉例:id f_id title* 1 0 陝西* 2 0 山西* 3 1 西安* 4 1 渭南* 5 2 山西*我們以省市劃分舉例,id代表每條記錄的序號,f_id代表父id,取值取得*是它的上一級地區的id。 仔細觀察即可發現規律* 個人理解,希望可以協助有需求的人*///建立一個函數兩個參數 $arr 將分類的數組 $p_id 初始父id
function get_fenlei($arr,$p_id=0){//採用foreach()迴圈列印$arr數組foreach ($arr as $value) { //首先我們尋找f_id==0的記錄,因為它們是最高的,所以分別以它們 //為根節點向下尋找子節點,即就是利用函數遞迴,尋找 //屬於直轄下的城市if($value['p_id']==$p_id){//f_is==0執行 if($value['p_id']==0){//為了顯示效果,不是核心代碼 echo "
".$value['title'];//顯示title }else{ echo "
--------".$value['title']; } //函數遞迴,此時以根節點的id作為父id尋找它下面的城市 //核心代碼,如此遞迴 顯示無限分類 get_fenlei($arr,$value['id']);}}}//我們就不用操作資料庫了,用一個數組代替就可以了$arr=array(array('id'=>'1','p_id'=>'0','title'=>'陝西'),array('id'=>'2','p_id'=>'0','title'=>'山西'), array('id'=>'3','p_id'=>'1','title'=>'西安'), array('id'=>'4','p_id'=>'1','title'=>'渭南'), array('id'=>'5','p_id'=>'2','title'=>'大同'));//執行函數get_fenlei($arr);
:
以上就介紹了利用函數遞迴實現無限分類,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。