PHP遞迴實現層級樹狀展開,php遞迴層級樹狀_PHP教程

來源:互聯網
上載者:User

PHP遞迴實現層級樹狀展開,php遞迴層級樹狀


本文執行個體為大家分享了PHP遞迴實現層級樹狀展開的主要代碼,供大家參考,具體內容如下

實現代碼:

<?php   $db = mysql_connect('localhost', 'root', 'root') or die('Can\'t connect to database'); mysql_select_db('test') or die('Can\'t find database : test'); $result = mysql_query('select id, fid, name from tree'); while($arr = mysql_fetch_array($result)){   $data[] = array(     'id' => $arr['id'],      'fid' => $arr['fid'],     'name' => $arr['name'],    ); }   // 將資料按照縮排簡單排列 見圖1 function data2arr($tree, $rootId = 0, $level = 0) {   foreach($tree as $leaf) {     if($leaf['fid'] == $rootId) {       echo str_repeat('    ', $level) . $leaf['id'] . ' ' . $leaf['name'] . '
'; foreach($tree as $l) { if($l['fid'] == $leaf['id']) { data2arr($tree, $leaf['id'], $level + 1); break; } } } } } data2arr($data); echo '
-----------------------------------------------------------------------
'; // 將資料按照所屬關係封裝 見圖2 function arr2tree($tree, $rootId = 0) { $return = array(); foreach($tree as $leaf) { if($leaf['fid'] == $rootId) { foreach($tree as $subleaf) { if($subleaf['fid'] == $leaf['id']) { $leaf['children'] = arr2tree($tree, $leaf['id']); break; } } $return[] = $leaf; } } return $return; } $tree = arr2tree($data); print_r($tree); echo '
-----------------------------------------------------------------------
'; // 將資料使用HTML再次展現 見圖3 function tree2html($tree) { echo '
    '; foreach($tree as $leaf) { echo '
  • ' .$leaf['name']; if(! emptyempty($leaf['children'])) tree2html($leaf['children']); echo '
  • '; } echo '
'; } tree2html($tree);

以上就是本文的全部內容,希望對大家學習php程式設計有所協助。

您可能感興趣的文章:

  • 淺析PHP遞迴函式傳回值使用方法
  • php無限分類且支援輸出樹狀圖的詳細介紹
  • php遞迴擷取目錄內檔案(包含子目錄)封裝類分享
  • php遞迴函式中使用return的注意事項
  • php遞迴使用樣本(php遞迴函式)
  • php function用法如何遞迴及return和echo區別
  • php 無限級分類,超級簡單的無限級分類,支援輸出樹狀圖
  • php無限極分類遞迴排序實現方法
  • 基於遞迴實現的php樹形菜單代碼
  • php實現遞迴的三種基本方式

http://www.bkjia.com/PHPjc/1117041.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1117041.htmlTechArticlePHP遞迴實現層級樹狀展開,php遞迴層級樹狀 本文執行個體為大家分享了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.