当前位置:网站首页>PHP 无限极分类和树形
PHP 无限极分类和树形
2022-04-23 05:57:00 【自己收藏学习】
PS:树形结构我前端不知道怎么无限制遍历下去,感觉只适合明确了总共几层的,比如一、二、三级菜单这种,不适合无限级
无限级分类(递归方法):
/*
递归无限极分类
*/
function unlimitedMenu($arr,$pid=0,$level=0){
static $list = array();
foreach ($arr as $v) {
//如果是顶级分类,则将其存到$list中,并以此节点为根节点,遍历其子节点
if ($v['pid'] == $pid) {
$v['level'] = $level;
$list[] = $v;
unlimitedMenu($arr,$v['id'],$level+1);
}
}
return $list;
}
树形菜单(一):
/*
数组返回树形结构
$id 自增ID字段名
$pid 父类id字段名
$son 子集的键名
*/
function tree($array,$id='id',$pid='pid',$son='son'){
$temp = [];
foreach ($array as $v) {
$v[$son] = [];
$temp[$v[$id]] = $v;
}
//获取分类树
foreach ($temp as $k => $v) {
$temp[$v[$pid]][$son][] = &$temp[$v[$id]];
}
return isset($temp[0][$son]) ? $temp[0][$son] : [];
}
树形菜单(二):
function getChild($data, $id = 0)
{
//初始化儿子
$child = [];
//循环所有数据找$id的儿子
foreach ($data as $key => $datum) {
//找到儿子了
if ($datum['pid'] == $id) {
//保存下来,然后继续找儿子的儿子
$child[$datum['id']] = $datum;
//先去掉自己,自己不可能是自己的儿孙
unset($data[$key]);
//递归找,并把找到的儿子放到一个child的字段中
$child[$datum['id']]['child'] = getChild($data, $datum['id']);
}
}
return $child;
}
版权声明
本文为[自己收藏学习]所创,转载请带上原文链接,感谢
https://blog.csdn.net/pksport/article/details/121539847
边栏推荐
猜你喜欢
随机推荐
excel快速自动填充空白单元格上一行的内容
SignalR实现从服务端主动发送数据到客户端
el-form表单多重循环校验
JS实现网页轮播图
查漏补缺(三)
千呼万唤始出来
查漏补缺(二)
数据可视化基础了解
数据可视化百度地图进一步优化
查漏补缺(八)
Mysql中的索引与视图
useCenterHook
ES6新增方法
WebAPI+Form表单上传文件
js更改全部变量失败后改成return方法,终于解决解决问题
oninput 一个函数达到控制多个oninput的效果(将本输入框的内容作为参数)【很实用,很实用】
JS中的this指向
Overview of node file system and buffer
Redux概述
todesk远程控制软件的使用