PHP遞歸實(shí)現(xiàn)層級樹狀展開
更新時間: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è)計有所幫助。
您可能感興趣的文章:
- 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*自動尋路算法實(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-09
php使用GuzzleHttp實(shí)現(xiàn)HTTP請求
這篇文章主要為大家詳細(xì)介紹了php如何使用GuzzleHttp實(shí)現(xiàn)HTTP請求,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
利用PHP_XLSXWriter代替PHPExcel的方法示例
PHPExcel是一個處理Excel,CVS文件的開源框架,但不幸的是PHPExcel官方已不再維護(hù)了這個項(xiàng)目了,官方團(tuán)隊在github上又起了一個新項(xiàng)目,叫PhpSpreadsheet。那么這篇文章主要給大家介紹了關(guān)于利用PHP_XLSXWriter代替PHPExcel的方法示例,需要的朋友可以參考下。2017-07-07

