利用函數遞迴實現無限分類

來源:互聯網
上載者:User
/**利用函數遞迴的思想建立一個函數實現無限分類的功能*其實就是以每條資料的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教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.