PHP遞歸實(shí)現(xiàn)層級樹狀展開
更新時(shí)間:2016年04月01日 16:00:20 作者:mickelfeng
這篇文章主要為大家詳細(xì)介紹了PHP遞歸實(shí)現(xiàn)層級樹狀展開的相關(guān)資料,需要的朋友可以參考下
本文實(shí)例為大家分享了PHP遞歸實(shí)現(xiàn)層級樹狀展開的主要代碼,供大家參考,具體內(nèi)容如下
效果圖:
實(shí)現(xiàn)代碼:
<?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'], ); } // 將數(shù)據(jù)按照縮進(jìn)簡單排列 見圖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/>'; // 將數(shù)據(jù)按照所屬關(guān)系封裝 見圖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/>'; // 將數(shù)據(jù)使用HTML再次展現(xiàn) 見圖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);
以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)php程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- php遍歷樹的常用方法匯總
- PHP實(shí)現(xiàn)二叉樹的深度優(yōu)先與廣度優(yōu)先遍歷方法
- PHP生成樹的方法
- php FLEA中二叉樹數(shù)組的遍歷輸出
- PHP實(shí)現(xiàn)的線索二叉樹及二叉樹遍歷方法詳解
- PHP Class&Object -- 解析PHP實(shí)現(xiàn)二叉樹
- PHP樹的深度編歷生成迷宮及A*自動(dòng)尋路算法實(shí)例分析
- PHP樹-不需要遞歸的實(shí)現(xiàn)方法
- PHP Class&Object -- PHP 自排序二叉樹的深入解析
- php實(shí)現(xiàn)的二叉樹遍歷算法示例
- PHP構(gòu)造二叉樹算法示例
- PHP字典樹(Trie樹)定義與實(shí)現(xiàn)方法示例
相關(guān)文章
php實(shí)現(xiàn)分頁功能的詳細(xì)實(shí)例方法
在本篇文章里小編給大家整理的是關(guān)于php實(shí)現(xiàn)分頁功能的詳細(xì)實(shí)例方法,有需要的朋友們可以學(xué)習(xí)下。2019-09-09php使用GuzzleHttp實(shí)現(xiàn)HTTP請求
這篇文章主要為大家詳細(xì)介紹了php如何使用GuzzleHttp實(shí)現(xiàn)HTTP請求,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11利用PHP_XLSXWriter代替PHPExcel的方法示例
PHPExcel是一個(gè)處理Excel,CVS文件的開源框架,但不幸的是PHPExcel官方已不再維護(hù)了這個(gè)項(xiàng)目了,官方團(tuán)隊(duì)在github上又起了一個(gè)新項(xiàng)目,叫PhpSpreadsheet。那么這篇文章主要給大家介紹了關(guān)于利用PHP_XLSXWriter代替PHPExcel的方法示例,需要的朋友可以參考下。2017-07-07