PHP把列表数据的子级内容合并到父级

1、父级count总和 = 父级count + 该父级下所有子级count

2、代码:

public function list(){$assoc = [  //定义父级ID对应的子级ID1 => [1, 3],2 => [2, 4, 5],6 => [6, 7, 8],9 => [9, 10]];$list = [['id'=>'1', 'name'=>'父级1', 'count'=>1],['id'=>'2', 'name'=>'父级2', 'count'=>1],['id'=>'3', 'name'=>'子级3', 'count'=>1],['id'=>'4', 'name'=>'子级4', 'count'=>1],['id'=>'5', 'name'=>'子级5', 'count'=>1],['id'=>'6', 'name'=>'父级6', 'count'=>1],['id'=>'7', 'name'=>'子级7', 'count'=>1],['id'=>'8', 'name'=>'子级8', 'count'=>1],];$ids = array_column($list, 'id');$listCombine = array_combine($ids, $list);$result = [];$pids = array_keys($assoc);foreach ($pids as $pid){$ids = isset($assoc[$pid]) ? $assoc[$pid] : [];    //获取父级下的子级foreach ($ids as $id){if (!isset($listCombine[$id])){continue;}if(isset($result[$pid])){$result[$pid]['count'] += $listCombine[$id]['count'];}else{$result[$pid] = $listCombine[$id];}}}return $result;
}

3、打印结果为

array (1 =>array ('id' => '1','name' => '父级1','count' => 2,),2 =>array ('id' => '2','name' => '父级2','count' => 3,),6 =>array ('id' => '6','name' => '父级6','count' => 3,),
)

PHP把列表数据的子级内容合并到父级相关推荐

  1. php 根据父级id查出,php,_三级分类 like查询 查询到很多id 需要找到对应的父级id 并根据父级id组合 应该怎么根据父级id将数据组合在一起呢?,php - phpStudy...

    三级分类 like查询 查询到很多id 需要找到对应的父级id 并根据父级id组合 应该怎么根据父级id将数据组合在一起呢? 这是获取到的数据 父级id为parent_id Array ( [0] = ...

  2. element tree 父级勾选子级也勾选,子级勾选默认父级也勾选, 子级取消勾选不影响父级勾选(前端)

    在做菜单和菜单按钮权限配置这块,用element-UI中的tree组件来做.想选中单个页面,或者单个页面的某个具体按钮,就能把所有上级的父级菜单也勾选上,而且取消菜单按钮的时候还不影响父级菜单的勾选. ...

  3. CSS 子级元素固定在父级元素底部 - css

    日常开发中经常会遇到类似移动端底部 Tabbar 的效果,将子元素固定在父级元素底部的情况: 首先,需要配置子父视图的宽高 em: 它是描述相对于应用在当前元素的字体尺寸,所以它也是相对长度单位.一般 ...

  4. 关于子元素的margin-top对父级容器无效

    原理就是重新构建一个bfc盒子.如果不想看那么长,看下面这句话就好了. 刚开始我没看到这个总结时一直是使用自己摸索出来paddin-top解决,发现该方式并不好.亲测给父级加一个overflow不为v ...

  5. jquery 同级元素下的子元素_jq 获取所有父级元素及同级元素及子元素的方法(推荐)...

    1.获取父级元素 $("#id").parent() 获取其父级元素 $("#id").parents() 获取其所有的祖先元素 $("#id&quo ...

  6. html 内容不被父级包住,解决:父级元素不能被子元素内容撑开的解决办法,父级元素没有高度的解决办法...

    问题 父级元素不能被子元素内容撑开的解决办法,父级元素没有高度的解决办法. 今天在写网页时遇到如下图问题,解决问题后自己做个随笔,希望帮到更多的学前端的童鞋! 问题图片 问题描述 最外层的不能自适应高 ...

  7. 子窗体菜单合并到父窗体菜单的解决办法

    系统中既有父窗体又有子窗体,子窗体添加下拉菜单,运行时子窗体的菜单会合并到父窗体的菜单中,解决办法是,将子窗体菜单控件的AllowMerge属性设为false.

  8. ExpandableListView 解决子级背景色混乱 和父级展开项唯一效果实现

    先上效果图: @BindView(R.id.expandList) ExpandableListView expandableListView; ExpandableListViewAdapter e ...

  9. angularjs -- 监听angularJs列表数据是否渲染完毕

    前端在做数据渲染的时候经常会遇到在数据渲染完毕后执行某些操作,这几天就一直遇到在列表和表格渲染完毕后,执行点击和选择操作.对于angularjs处理这类问题,最好的方式就是指令 directive. ...

  10. 多重盒子嵌套下,子盒子撑开父盒子,父盒子宽度随子盒子内容自适应

    先看默认状态下的效果: 块级元素高度被内容撑开,宽度默认为父级100%(这里父级为浏览器大小) 行内元素的宽高都由内容撑开 我们的需求是:让块级父盒子的宽度由子盒子撑开 结论:把需要自适应的那层父盒子 ...

最新文章

  1. 清华大学《大数据系统基础A/B》课程实践项目宣讲会来了
  2. JavaWeb_域对象的属性操作
  3. python语言核心技术_python核心技术
  4. 洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…【字符串+模拟】
  5. 基于Axis服务端的webservice客户端实现
  6. axure form列表_常见的列表页如何用Axure画出来
  7. 【CSS3】CSS3背景相关属性大全
  8. 云虚拟主机和传统虚拟主机的区别?
  9. PageRank三个博客mark
  10. 设计模式—抽象工厂模式(思维导图)
  11. winform point数组带数值_excel 根据条件标注最大数值最小数值
  12. Apache Jmeter压力测试
  13. 浅谈防勒索病毒方案之主机加固
  14. python提取html表格_用Python抓取HTML表格
  15. MAC使用Safari浏览器仿真IE
  16. adb使用-详细教程(Awesome Adb)
  17. 谷歌神经网络机器翻译NMT:人人可利用TensorFlow快速建立翻译模型
  18. objective-C的内存管理机制琢磨不透
  19. easyUI中表格实现导出excel功能
  20. 「Flink实时数据分析系列」2. 流处理基本概念

热门文章

  1. ntko web firefox跨浏览器插件_Web浏览器如何使用进程和线程
  2. 【BFS】迷宫问题c++代码详解(逐句分析)
  3. 选择语句详解(C++)
  4. java定时执行bat_如何自动执行多个批处理命令
  5. ng bind html br,使用PrimeNG开发angular web项目
  6. 知识竞赛的环节主题文件准备的四大步骤及重要提示
  7. shell 脚本执行报错/bin/bash^M: bad interpreter: No such file or directory
  8. tp3.2 生成二维码
  9. Elasticsearch系列——实战探索text与keyword的区别
  10. PyCharm下载及使用