PHP遞迴實現層級樹狀展開的方法

來源:互聯網
上載者:User
這篇文章主要為大家詳細介紹了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'] . '<br/>';       foreach($tree as $l) {         if($l['fid'] == $leaf['id']) {           data2arr($tree, $leaf['id'], $level + 1);           break;         }       }     }   } }   data2arr($data); echo '<br/>-----------------------------------------------------------------------<br/>';   // 將資料按照所屬關係封裝 見圖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 '<br/>-----------------------------------------------------------------------<br/>';   // 將資料使用HTML再次展現 見圖3 function tree2html($tree) {   echo '<ul>';   foreach($tree as $leaf) {     echo '<li>' .$leaf['name'];     if(! emptyempty($leaf['children'])) tree2html($leaf['children']);     echo '</li>';   }   echo '</ul>'; }   tree2html($tree);

總結:以上就是本篇文的全部內容,希望能對大家的學習有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.