欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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('&nbsp;&nbsp;&nbsp;&nbsp;', $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ì)有所幫助。

相關(guān)文章

  • php實(shí)現(xiàn)分頁功能的詳細(xì)實(shí)例方法

    php實(shí)現(xiàn)分頁功能的詳細(xì)實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于php實(shí)現(xiàn)分頁功能的詳細(xì)實(shí)例方法,有需要的朋友們可以學(xué)習(xí)下。
    2019-09-09
  • 解析php中如何直接執(zhí)行SHELL

    解析php中如何直接執(zhí)行SHELL

    本篇文章是對php中直接執(zhí)行SHELL的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 使用PHP的日期與時(shí)間函數(shù)技巧

    使用PHP的日期與時(shí)間函數(shù)技巧

    任何一種語言,日期和時(shí)間函數(shù)都是我們常使用的,下面就教你PHP下的日期和時(shí)間的技巧
    2008-04-04
  • PHP json_encode中文亂碼解決方法

    PHP json_encode中文亂碼解決方法

    這篇文章主要介紹了PHP json_encode中文亂碼解決方法,有遇到此類問題的同學(xué),可以參考一下
    2021-04-04
  • php數(shù)字轉(zhuǎn)漢字代碼(算法)

    php數(shù)字轉(zhuǎn)漢字代碼(算法)

    php數(shù)字轉(zhuǎn)漢字代碼(算法),學(xué)習(xí)php的朋友可以參考下。
    2011-10-10
  • 淺析PHP7的多進(jìn)程及實(shí)例源碼

    淺析PHP7的多進(jìn)程及實(shí)例源碼

    在本篇內(nèi)容里小編給大家分享了關(guān)于PHP7之多進(jìn)程的相關(guān)概念和實(shí)例代碼知識點(diǎn),需要的朋友們跟著學(xué)習(xí)下。
    2019-04-04
  • 深入理解PHP原理之異常機(jī)制

    深入理解PHP原理之異常機(jī)制

    在PHP每一個(gè)可獨(dú)立執(zhí)行的op array最后的ZEND_HANDLE_EXCEPTION是用來干什么呢?
    2010-08-08
  • PHP設(shè)計(jì)模式 注冊表模式

    PHP設(shè)計(jì)模式 注冊表模式

    注冊表模式其實(shí)是一個(gè)單例模式,注冊表類提供靜態(tài)方法(或單例對象的實(shí)例化方法)來讓其它對象訪問其中的數(shù)據(jù)(通常是對象)。整個(gè)系統(tǒng)中的每個(gè)對象都可以訪問這些數(shù)據(jù)對象
    2012-02-02
  • php使用GuzzleHttp實(shí)現(xiàn)HTTP請求

    php使用GuzzleHttp實(shí)現(xiàn)HTTP請求

    這篇文章主要為大家詳細(xì)介紹了php如何使用GuzzleHttp實(shí)現(xiàn)HTTP請求,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • 利用PHP_XLSXWriter代替PHPExcel的方法示例

    利用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

最新評論