树状数据展现很常用,今天学习了PHP的递归,也来总结总结!

  PHP代码:

  

function _getTreeList_custom1($data,$parent_id,$depth)
{
$return_array = array(); if(is_array($data) && !empty($data))
{
foreach($data as $key => $info)
{
if($info['parent_id'] == $parent_id)
{
$info['depth'] = $depth; $temp_info = $info; foreach($data as $s_info)
{
if($s_info['parent_id'] == $info['id'])
{
$temp_info['sub'] = _getTreeList_custom1($data, $info['id'], $depth+1);
break;
}
} $return_array[] = $temp_info;
}
}
} return $return_array;
} function _getTreeList_custom2($data,$parent_id,$depth)
{
$return_array = array(); if(is_array($data) && !empty($data))
{
foreach($data as $key => $info)
{
if($info['parent_id'] == $parent_id)
{
$info['depth'] = $depth;
$temp_info = $info;
unset($data[$key]);
$sub_list = _getTreeList_custom2($data,$info['id'],$depth+1); if(!empty($sub_list))
{
$temp_info['sub'] = $sub_list;
} $return_array[] = $temp_info;
} } } return $return_array;
}

  

  前台显示:

  

function showTreeOnHtml($treeList)
{
echo '<ul>';
foreach($treeList as $key => $treeInfo)
{
echo '<li>';
echo $treeInfo['name'];
if(!empty($treeInfo['sub']))
{
showTreeOnHtml($treeInfo['sub']);
}
echo '</li>';
}
echo '<ul>'; }
showTreeOnHtml($treeList);

  

PHP递归实现层级树状展现数据的更多相关文章

  1. PHP 递归实现层级树状展现数据

    <?php $db = mysql_connect('localhost', 'root', 'root') or die('Can\'t connect to database'); mysq ...

  2. Java-J2SE学习笔记-树状展现文件结构

    1.利用java.io相关类树状展现文件结构 2.判定给定路径是否为dir,是则递归,每一递归一层缩进一次 3.代码 package Test; import java.io.File; public ...

  3. 菜鸟笔记:node.js+mysql中将JSON数据构建为树(递归制作树状菜单数据接口)

    初学Web端开发,今天是第一次将所学做随笔记录,肯定存在多处欠妥,望大家海涵:若有不足,望大家批评指正. 进实验室后分配到的第一个项目,需要制作一个不确定层级树形菜单的数据接口,对于从来没实战编过程的 ...

  4. vue 树状图数据的循环 递归循环

    在main.js中注册一个子组件 在父组件中引用 树状图的数据格式 绑定一个数据传入子组件,子组件props接收数据 子组件中循环调用组件,就实现了递归循环

  5. 基于ExtJs6前台,SpringMVC-Spring-Mybatis,resteasy,mysql无限极表设计,实现树状展示数据(treepanel)

    先从后台讲起 1.表的设计 parent_id就是另外一条记录的id,无限极表设计可以参考  http://m.blog.csdn.net/Rookie_Or_Veteran/article/deta ...

  6. 如何构造树状 JSON 数据 JSON-Tree

    十年河东,十年河西,莫欺骚年穷...打错一个字哈.~_~ 接着上一篇博客,上一篇博客是=使用数据库结合LINQ构造的,为了方便理解,本篇采用泛型分组进行构造. 有兴趣的小虎斑可以参考上一篇博客:如何构 ...

  7. Java递归获取部门树 返回jstree数据

    @GetMapping("/getDept")@ResponseBodypublic Tree<DeptDO> getDept(String deptId){ Tree ...

  8. 树状结构Java模型、层级关系Java模型、上下级关系Java模型与html页面展示

    树状结构Java模型.层级关系Java模型.上下级关系Java模型与html页面展示 一.业务原型:公司的组织结构.传销关系网 二.数据库模型 很简单,创建 id 与 pid 关系即可.(pid:pa ...

  9. D3树状图异步按需加载数据

    D3.js这个绘图工具,功能强大不必多说,完全一个Data Driven Document的绘图工具,用户可以按照自己的数据以及希望实现的图形,随心所欲的绘图. 图形绘制,D3默认采用的是异步加载,但 ...

随机推荐

  1. LeetCode 笔记系列 20 Interleaving String [动态规划的抽象]

    题目: Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example,Given: ...

  2. SQLAlchemy一对多总结

    1.SQLAlchemy之一对多关系 1.1 创建单表 class Test(Base): __tablename__ = 'user' nid = Colume(Integer,primary_ke ...

  3. nodejs 安装配置 for ubuntu

    安装nodejs sudo apt-get update sudo apt-get install nodejs -g  #全局安装 安装npm sudo apt-get install npm #查 ...

  4. log4j.properties配置详解(转)

    本篇文章转自http://it.oyksoft.com/log4j/ 非常感谢原创作者的辛勤编写与分享. 一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders ...

  5. git 添加ssh的方法 push免登陆

    在github.com上 建立了一个小项目,可是在每次push  的时候,都要输入用户名和密码,很是麻烦 原因是使用了https方式 push 在termail里边 输入  git remote -v ...

  6. SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件

    SQL SERVER 2008配置Database Mail –用SQL  数据库发邮件 https://blogs.msdn.microsoft.com/apgcdsd/2011/06/28/sql ...

  7. Linux 进程退出后自动启动

    /********************************************************************** * Linux 进程退出后自动启动 * 说明: * 在系 ...

  8. pasa的安装

    介绍: http://pasapipeline.github.io/ 参考别人的安装教程:http://sihua.us/pasa.htm 软件下载: https://github.com/PASAp ...

  9. IIS 发布网站 ashx无法访问

    IIS6 问题 1.是否安装相应的.net版本 2.查看.net版本是否一致 3.查看web 服务扩展中.net版本是否允许. 4.添加相应的MIME类型文件 在IIS中右键网站→属性→主目录→配置→ ...

  10. LintCode Singleton

    Singleton 3 大要素: 1.有private static的句柄(成员变量即field) 2. constructor 必须为private 3.有public static的getInst ...