php树形结构变成线性结构,php把数据集转换成树状结构,无限极分类生成树状 – CSDN博客...
直接上代码,在onethink里面使用的转换树状结构/** * 把返回的数据集转换成Tree * @param array $list 要转换的数据集 * @param string $pid parent标记字段 * @param string $level level标记字段 * @return array * @author 麦当苗儿 */function li
方法1
直接上代码,在onethink里面使用的转换树状结构
/**
* 把返回的数据集转换成Tree
* @param array $list 要转换的数据集
* @param string $pid parent标记字段
* @param string $level level标记字段
* @return array
* @author 麦当苗儿 */
function list_to_tree($list, $pk='id', $pid = 'pid', $child = '_child', $root = 0) {
// 创建Tree
$tree = array();
if(is_array($list)) {
// 创建基于主键的数组引用
$refer = array();
foreach ($list as $key => $data) {
$refer[$data[$pk]] =& $list[$key];
}
foreach ($list as $key => $data) {
// 判断是否存在parent
$parentId = $data[$pid];
if ($root == $parentId) {
$tree[] =& $list[$key];
}else{
if (isset($refer[$parentId])) {
$parent =& $refer[$parentId];
$parent[$child][] =& $list[$key];
}
}
}
}
return $tree;
}
ps:这个函数最主要的是通过&引用(引用:同一个变量,不同的名字。与c指针不同,指针里面是变量的内容,是内存中的地址。)
$refer[$data[$pk]] = & $list[$key];
这里的$refer[$data[$pk]]就是引用了 $list[$key] 地址了
$tree这个变量也是引用的$list里面的内容
返回$tree就是返回$list里面的内容
方法2
function generateTree2($rows, $id='id', $pid='pid'){
$items = array();
foreach ($rows as $row) $items[$row[$id]] = $row;
foreach ($items as $item) $items[$item[$pid]]['son'][$item[$id]] = &$items[$item[$id]];
return isset($items[0]['son']) ? $items[0]['son'] : array();
}
1,和上面的一样,创建基于主键的数组
2,通过引用到父级分类下面
php树形结构变成线性结构,php把数据集转换成树状结构,无限极分类生成树状 – CSDN博客...相关推荐
- java递归查询无限极分类_sqlserver实现树形结构递归查询(无限极分类)的方法
SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 百度百科 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它.每个CTE ...
- 无限极分类php简单,创建无限极分类树型结构的简单方法
先上效果图 顶级分类其实就是一级分类,二级分类也叫作一级分类的子分类,在这个基础上,子分类还可以拥有子分类,这样就构成了无限极分类. 接下来看具体实现的代码: 一.在控制器中按字段查询,查询出所有分类 ...
- 结构之法算法之道CSDN博客-第一期全部博文集锦[CHM 文件下载]
结构之法算法之道CSDN博客- 博文集锦第一期CHM 文件 首先恭喜你,你得到了一份非常宝贵的资源. 此份文件是截止到2011年2月27日,本博客.结构之法算法之道博客内的第一期全部内容的集锦,同时, ...
- 无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_百叶书的博客-CSDN博客_线性时变模型预测控制 转
无人驾驶运动学模型--线性时变模型预测控制的思路推演过程_百叶书的博客-CSDN博客_线性时变模型预测控制
- java递归查询无限极分类_sqlserver实现树形结构递归查询(无限极分类)
SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 百度百科 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它.每个CTE ...
- 利用链式存储结构实现线性表
本图文主要介绍了如何利用链式存储结构实现线性表.
- android栈式存储,线性表数据结构解读(三)栈结构Stack
在上一篇文章中,我们详细介绍了链式存储结构,并结合LinkedList源码进行了分析,相关文章大家可以点击这里回看我的博客:线性表数据结构解读(二)链式存储结构LinkedList 栈的定义 栈是一种 ...
- php 递归栏目名叠加,thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法,thinkphp递归...
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法,thinkphp递归 本文实例讲述了thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法.分享给大家供大家参考,具体如下: 这 ...
- 数据的逻辑结构(线性结构、非线性结构;集合结构、树状结构、网状结构),数据的存储结构(顺序结构、链式结构、索引结构、散列结构)
数据的逻辑结构 数据的逻辑结构指数据元素之间的逻辑关系(和实现无关). 分类1:线性结构和非线性结构 线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继. ...
最新文章
- Python中关于split和splitext的差别和运用
- c语言求泰勒正弦公式,用泰勒公式求sin(x)的近似值
- Linux与Windows比较出的20个优势
- win10高分辨率下修改字体显示大小(不是缩放百分比)
- android 手机 与 python服务器_Python服务器与多种客户端(Python/Java/Android)之间的通信...
- python不同模式打开文件的完全列表
- 阿里大牛总结:学会这些Kafka知识,吊打面试官就是分分钟的事
- PHP Mysql or条件排序问题
- 保护电路:简单的限流保护电路图
- 银联手机POS,支付黑科技
- vue + web 前端访问后端,跨域问题解决方案
- 菜鸟的Android之路-02《eclipse新建android project》
- 章文嵩:开源,LVS,以及留下的无数传说
- php验证qq,正则表达式验证qq号码是否输入正确
- 外挂三部曲(三) —— Android 图片相似度对比
- mysql 页分裂_InnoDB中的页合并与分裂
- 集成redis,删除key报“srem“异常
- Mybatis日志源码探究
- 自学网络安全的三个必经阶段(含路线图)
- Project Euler Problem 66
热门文章
- linux中256错误,YUM安装遭遇: [Errno 256] No more mirrors to try
- python矩阵运算dot_矩阵、张量乘法(numpy.tensordot)的时间复杂度分析
- 计算机模块考试注意事项,常考计算机模块考试操作注意事项.doc
- mysql window怎么安装补丁_window下mysql安装步骤
- python 微信_wxpy: 用 Python 玩微信
- misc高阶 攻防世界_玄幻世界(修真、仙侠、奇幻、神话)修炼体系基础模型设定。...
- layui的表格可以动态添加行吗_答疑分享052:插入表格,数据分析更方便
- 从一点儿不会开始——Unity3D游戏开发学习(一)
- 三维动画制作的基本流程
- python 安装 HTMLtestRunner(转)