php根据id和pid把单级数组重新组合为树结构
function list_to_trees($list, $pk='id', $pid = 'pid', $child = 'children', $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
$parantId = $data[$pid];
if ($root == $parantId) {
$tree[] = &$list[$key];
}else {
if (isset($refer[$parantId])) {
$parent = &$refer[$parantId];
$parent[$child][] = &$list[$key];
}
}
}
}
return $tree;
}
参数说明
- $list [array] 原始数组
- $pk [string] id
- $pid [string] 父级pid
- $child [array] 承载子集的容器
- return [array] 返回树结构
一般传第一个参数就行
联系站长:
相关文章
js使用正则表达式获取html字符串中的img标签的src组成数组
js使用正则表达式获取html字符串中的img标签的src组成数组exec() 方法用于检索字符串中的正则表达式的匹配。如果字符串中有匹配的值返回该匹配值,否则返回 null。var htm...
uniapp常用api整合
每次使用uniapp开发都有一些常用的api需要调用,直接写官方的api显的代码很杂乱,重复的太多,于是把这些常用的api整理起来,作为常用的工具挂载到vue对象上,这样在任何页面都可以用this获取...
css显示三行文字,溢出显示省略号
css显示三行文字,溢出显示省略号(显示任意行,可以把数字3替换成其他数字):.text-wrap { display: -webkit-box; &n...
【JavaScript】js获取当前年月日周
【JavaScript】js获取当前年月日周function getcurtime(){ const addZero =...
如何使用宝塔配置正向代理,例如:请求https://www.自己的域名.com/api,代理到https://www.别人的域名.com/api
ngnix如何使用宝塔配置正向代理,例如:请求https://www.自己的域名.com/api, 代理到https://www.别人的域名.com/apilocation /baidu/&...
vue history路由下,对ngnix服务配置修改防止出现404问题
打开配置文件: # 打开配置文件 vi /usr/local/nginx/conf/nginx.con 宝塔则点击域名在里面找到配置文件进去修改: 如果域名直接指向...