PHP递归实现层级树状展现数据
树状数据展现很常用,今天学习了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递归实现层级树状展现数据的更多相关文章
- PHP 递归实现层级树状展现数据
<?php $db = mysql_connect('localhost', 'root', 'root') or die('Can\'t connect to database'); mysq ...
- Java-J2SE学习笔记-树状展现文件结构
1.利用java.io相关类树状展现文件结构 2.判定给定路径是否为dir,是则递归,每一递归一层缩进一次 3.代码 package Test; import java.io.File; public ...
- 菜鸟笔记:node.js+mysql中将JSON数据构建为树(递归制作树状菜单数据接口)
初学Web端开发,今天是第一次将所学做随笔记录,肯定存在多处欠妥,望大家海涵:若有不足,望大家批评指正. 进实验室后分配到的第一个项目,需要制作一个不确定层级树形菜单的数据接口,对于从来没实战编过程的 ...
- vue 树状图数据的循环 递归循环
在main.js中注册一个子组件 在父组件中引用 树状图的数据格式 绑定一个数据传入子组件,子组件props接收数据 子组件中循环调用组件,就实现了递归循环
- 基于ExtJs6前台,SpringMVC-Spring-Mybatis,resteasy,mysql无限极表设计,实现树状展示数据(treepanel)
先从后台讲起 1.表的设计 parent_id就是另外一条记录的id,无限极表设计可以参考 http://m.blog.csdn.net/Rookie_Or_Veteran/article/deta ...
- 如何构造树状 JSON 数据 JSON-Tree
十年河东,十年河西,莫欺骚年穷...打错一个字哈.~_~ 接着上一篇博客,上一篇博客是=使用数据库结合LINQ构造的,为了方便理解,本篇采用泛型分组进行构造. 有兴趣的小虎斑可以参考上一篇博客:如何构 ...
- Java递归获取部门树 返回jstree数据
@GetMapping("/getDept")@ResponseBodypublic Tree<DeptDO> getDept(String deptId){ Tree ...
- 树状结构Java模型、层级关系Java模型、上下级关系Java模型与html页面展示
树状结构Java模型.层级关系Java模型.上下级关系Java模型与html页面展示 一.业务原型:公司的组织结构.传销关系网 二.数据库模型 很简单,创建 id 与 pid 关系即可.(pid:pa ...
- D3树状图异步按需加载数据
D3.js这个绘图工具,功能强大不必多说,完全一个Data Driven Document的绘图工具,用户可以按照自己的数据以及希望实现的图形,随心所欲的绘图. 图形绘制,D3默认采用的是异步加载,但 ...
随机推荐
- Manacher
HDU 3068 Manacher裸题 #include <cstdio> #include <cstring> ; ],STR[Maxn<<]; ],Id,Mx; ...
- c++语法随身记
1.memset是计算机中C/C++语言函数.将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 第一个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的 ...
- JQuery源码解析(十)
默认回调对象设计 不传入任何参数,调用add的时候将函数add到内部的list中,调用fire的时候顺序触发list中的回调函数: function fn1(val) { console.log('f ...
- Android GPS定位 获取经纬度
移动 是手机与手持设备的最大特点,可以通过Eclipse的DDMS视图,模拟设备的位置变化,改变经纬度后,点击send,然后运行程序,在应用程序中,动态的获取设备位置,然后显示当前的位置信息. 获取位 ...
- WPF的Binding学习笔记(二)
原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...
- C++中 destory() 和deallocate()以及delete函数的相关性和区别性
这里非常的绕口 需要仔细的来看看: destory(): 显示调用一个对象的析构函数 相当于释放一个对象需要释放的一些动态内存 为下次真正释放对象做准备 deallocate():真正的释放一个内存 ...
- Kubuntu 使用YaH3C进行中大校园网认证
之前都是用路由器连网线上网,我也没注意到inode校园网客户端在linux上的问题.直到前两天把路由器给搞残废了,只能默默的找办法装inode.根据学校网络中心给的教程,在kubuntu上尝试安装in ...
- Codeforces Round #162 (Div. 2)
A. Colorful Stones (Simplified Edition) 模拟. B. Roadside Trees (Simplified Edition) 每次转移时,只需要爬到\(min( ...
- HDU 2577(DP)
题意:要求一个字符串输入,按键盘的最少次数.有Caps Lock和Shift两种转换大小写输入的方式 思路:用dpa与dpb数组分别记录Caps Lock的开关状态,dpa表示不开,dpb表示开 代码 ...
- 理解伪元素 :before和:after
在CSS中有一特性允许我们添加额外元素而不扰乱文档本身,就是伪元素. 下面举例说明: html: <blockquote> blockquote只是一个块引用 </blockquo ...