php关于无限分类的树状输出(id,name,pid)类型
来源:互联网 发布:罗克韦尔自动化 知乎 编辑:程序博客网 时间:2024/06/05 10:11
php关于无限分类的树状输出(id,name,pid)类型
1.简单demo实例
<?php//数组层级缩进转换function array2level($array, $pid = 0, $level = 1) { static $list = []; foreach ($array as $v) { if ($v['pid'] == $pid) { $v['level'] = $level; $list[] = $v; array2level($array, $v['id'], $level + 1); } } return $list;}//形成树状格式function arr2tree($tree, $rootId = 0,$level=1) { $return = array(); foreach($tree as $leaf) { if($leaf['pid'] == $rootId) { $leaf["level"] = $level; foreach($tree as $subleaf) { if($subleaf['pid'] == $leaf['id']) { $leaf['children'] = arr2tree($tree, $leaf['id'],$level+1); break; } } $return[] = $leaf; } } return $return; }$arrCate = array( //待排序数组 array( 'id'=>1, 'name' =>'顶级栏目一', 'pid'=>0), array( 'id'=>2, 'name' =>'顶级栏目二', 'pid'=>0), array( 'id'=>3, 'name' =>'栏目三', 'pid'=>1), array( 'id'=>4, 'name' =>'栏目四', 'pid'=>3), array( 'id'=>5, 'name' =>'栏目五', 'pid'=>4), array( 'id'=>6, 'name' =>'栏目六', 'pid'=>2), array( 'id'=>7, 'name' =>'栏目七', 'pid'=>6), array( 'id'=>8, 'name' =>'栏目八', 'pid'=>6), array( 'id'=>9, 'name' =>'栏目九', 'pid'=>7),);$tree = arr2tree($arrCate);print_r($tree);$result=array2level($arrCate);print_r($result);
$tree打印结果为:
Array( [0] => Array ( [id] => 1 [name] => 顶级栏目一 [pid] => 0 [level] => 1 [children] => Array ( [0] => Array ( [id] => 3 [name] => 栏目三 [pid] => 1 [level] => 2 [children] => Array ( [0] => Array ( [id] => 4 [name] => 栏目四 [pid] => 3 [level] => 3 [children] => Array ( [0] => Array ( [id] => 5 [name] => 栏目五 [pid] => 4 [level] => 4 ) ) ) ) ) ) ) [1] => Array ( [id] => 2 [name] => 顶级栏目二 [pid] => 0 [level] => 1 [children] => Array ( [0] => Array ( [id] => 6 [name] => 栏目六 [pid] => 2 [level] => 2 [children] => Array ( [0] => Array ( [id] => 7 [name] => 栏目七 [pid] => 6 [level] => 3 [children] => Array ( [0] => Array ( [id] => 9 [name] => 栏目九 [pid] => 7 [level] => 4 ) ) ) [1] => Array ( [id] => 8 [name] => 栏目八 [pid] => 6 [level] => 3 ) ) ) ) ))
$result打印结果为:
Array( [0] => Array ( [id] => 1 [name] => 顶级栏目一 [pid] => 0 [level] => 1 ) [1] => Array ( [id] => 3 [name] => 栏目三 [pid] => 1 [level] => 2 ) [2] => Array ( [id] => 4 [name] => 栏目四 [pid] => 3 [level] => 3 ) [3] => Array ( [id] => 5 [name] => 栏目五 [pid] => 4 [level] => 4 ) [4] => Array ( [id] => 2 [name] => 顶级栏目二 [pid] => 0 [level] => 1 ) [5] => Array ( [id] => 6 [name] => 栏目六 [pid] => 2 [level] => 2 ) [6] => Array ( [id] => 7 [name] => 栏目七 [pid] => 6 [level] => 3 ) [7] => Array ( [id] => 9 [name] => 栏目九 [pid] => 7 [level] => 4 ) [8] => Array ( [id] => 8 [name] => 栏目八 [pid] => 6 [level] => 3 ))
0 0
- php关于无限分类的树状输出(id,name,pid)类型
- php 无限分类 并生成树状图
- php无限分类 树状菜单经典代码
- 分享个无限极分类的输出类 包括树状等等
- 无限分类的程序,php
- php 无限分类的实现
- PHP无限分类的原理
- PHP无限分类的原理
- php的无限级分类
- PHP无限分类的原理
- PHP无限分类的原理
- php无限分类的思想
- php无限分类的删除
- PHP和MySQL处理树状、分级、无限分类、分层数据的方法
- 【php】php递归实现的无限分类
- PHP无限树状类
- mysql和php无限分类 数据归类 输出
- php把数据集转换成树状结构,无限极分类生成树状
- input文本框设置和移除默认值
- Attempted to read or write protected memory. This is often an indication that other memory is corrup
- VS2010+OPENCV 各种问题
- NYOJ 722 数独(dfs)
- 判断scrollView滚动结束
- php关于无限分类的树状输出(id,name,pid)类型
- QGIS2.18.4+QT5.7.1+VS2015编译方法
- Django添加富文本编辑器kindeditor
- 使用vmstat指令查看操作系统每秒进程切换的次数
- 网上图书商城视频教程day04
- 连接数据库
- C# DEV 关于设置gridview 指定单元格字体为红色
- iOS开发之集成ijkplayer视频直播
- ansible 操作