<? php
$stime = microtime(true);
$nodes = [
['id' = > 1, 'pid' = > 0, 'name' = > 'a'],
['id' = > 2, 'pid' = > 0, 'name' = > 'b'],
['id' = > 3, 'pid' = > 1, 'name' = > 'c'],
['id' = > 4, 'pid' = > 2, 'name' = > 'd'],
['id' = > 5, 'pid' = > 6, 'name' = > 'e'],
['id' = > 6, 'pid' = > 4, 'name' = > 'f'],
['id' = > 7, 'pid' = > 6, 'name' = > 'g'],
['id' = > 8, 'pid' = > 6, 'name' = > 'h'],
['id' = > 9, 'pid' = > 10, 'name' = > 'i'],
['id' = > 10, 'pid' = > 8, 'name' = > 'j']
]; function tree($list, $id = 'id', $pid = 'pid', $name = 'name') {
$data = [];
foreach($list as $row) {
$data[$row[$id]][$name] = $row[$name];
$data[$row[$pid]]['children'][$row[$id]] = & $data[$row[$id]];
}
return isset($data[0]['children']) ? $data[0]['children'] : [];
}
print_r(tree($nodes));
$etime = microtime(true);
echo '运行后内存:'.round(memory_get_usage() / 1024 / 1024, 2).
'MB \r\n';
$total = $etime - $stime; //计算差值
echo "[页面执行时间:{$total} ]秒"; ?>

php 数组变成树状型结构的更多相关文章

  1. 关于idea的目录结构如何变成树状,也就是横向变纵向

    横向 竖向 方法:

  2. php 二维数组转换成树状数组(转)

    <?php/** * @param array $list 要转换的结果集 * @param string $pid parent标记字段 * @param string $level leve ...

  3. tree 数状型结构显示目录下的内容

    1. 命令功能 tree中文意思“树”,以树形结构显示目录内容.. 2. 语法格式 tree  [option]   [directory] tree  选项   目录 3. 使用范例 当最小化安装l ...

  4. js List<Map> 将偏平化的数组转为树状结构并排序

    数据格式: [ { "id":"d3e8a9d6-e4c6-4dd8-a94f-07733d3c1b59", "parentId":&quo ...

  5. js修改父子json格式成树状结构格式

    js修改父子json成树状结构 var json = [ { "id" : "01", "pId":"" } , { & ...

  6. linux 把ls -R格式化成树状结构

    谁能写脚本把linux中的ls -R命令的结果格式化成树状结构? 最好是shell脚本!欢迎讨论! 参与讨论有可能意外获取iPhone6哦~~

  7. JSP中的一个树型结构

    看方力勋的javaWeb,采用左右值来表示树型结构(就是俺门的多级分类)表结构 页面代码 <%@ page language="java" import="java ...

  8. char型字符串(数组)与string型字符串 指针与引用

    一.常指针: int *const p;    //指针不可改变,但是指针指向的数据可以改变. 指向常量的指针: const int *p;    //指针可以改变,但是指针指向的数据不可以改变. 指 ...

  9. 20-Ubuntu-文件和目录命令-查看目录树型结构-tree

    tree 以树状图列出当前目录下的文件目录结构 选项 含义 -d 只显示当前目录的子目录树型结构   显示当前目录的子目录和文件树型结构 例: 1.查看文档目录下的子目录和文件树型结构 2.查看文档目 ...

随机推荐

  1. 使用ng-options指令创建下拉框

    今天在学习AngularJs中使用ng-options指令创建下拉框时遇到点问题,这里总结一下. 其实,使用ng-options指令创建下拉框很简单,只需要绑定两个属性. ng-options指令用于 ...

  2. dede后台登陆后一片空白的解决办法汇总

    dede后台登陆后一片空白的第一种解决办法: 找到:include/common.inc.php文件,打开,查找程序代码://error_reporting(E_ALL);error_reportin ...

  3. Ajax beforeSend和complete 方法

    http://blog.csdn.net/chenjianandiyi/article/details/52274591 .ajax({ beforeSend: function(){ // Hand ...

  4. 手机WebApp是什么?

    手机WebApp是基于HTML5+css3开发的,一次开发,可以兼容许多的平台(android/iphone),调用本地功能(比如照相),可以用phonegap去实现,所以,是一个趋势.相比每个平台定 ...

  5. <c:forEach 的常用整理

    <c:forEach items="${images}" var="img" varStatus="status"> <d ...

  6. android项目红色感叹号

    Project --> Clean 清理一下,一般要注意的,如果是你的项目文件有错误,特别是xml文件,清理后那个R资源文件会不见的,那就需要你把错误修正后自动生成的.

  7. Mac下Charles Contents乱码解决办法

    用到Charles,下载最新的4.0.1版本,但是发生乱码问题.百度好久才找到个靠谱的,那些说什么在Info.plist文件加字符串的,都是假的,反正我是试了都没用,这里记下详细的操作步骤解决: 1. ...

  8. 批处理注册dll时候 遇到错误:模块已加载,但对***dll的调用失败

    解决方法 在批处理的第一行加入:cd /d %~dp0 然后在批处理上右键选择使用管理员权限运行

  9. MySQLdb 部署

    1.windows 下载后,直接安装即可 http://www.jb51.net/softs/73369.html#download 双击安装 MySQL-python-1.2.3.win32-py2 ...

  10. 解决 PHPExcel 长数字串显示为科学计数[转]

    解决 PHPExcel 长数字串显示为科学计数 在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法,例如身份证号码,解决方法是把表格设置文本格式或在输入前加一个单引号. ...