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遞迴實現層級樹狀展開的主要代碼,供大家參考,具體內容如下 效果...