多重数据 $data ,获取顶级下的所有下级id

$data

array:3 [▼0 => array:7 [▼"id" => 1"created_at" => "2017-08-05 11:30:15""updated_at" => "2017-08-05 11:30:15""parent_id" => 0"children" => array:1 [▼0 => array:7 [▼"id" => 2"created_at" => "2017-08-05 11:31:11""updated_at" => "2017-08-18 18:57:11""parent_id" => 1"children" => array:1 [▼0 => array:7 [▼"id" => 3"created_at" => "2017-08-05 11:33:34""updated_at" => "2017-08-05 11:33:34""parent_id" => 2"children" => []]]]]]1 => array:7 [▼"id" => 4"created_at" => "2017-08-10 15:36:03""updated_at" => "2017-08-10 15:36:03""parent_id" => 0"children" => array:1 [▼0 => array:7 [▼"id" => 5"created_at" => "2017-08-10 15:36:31""updated_at" => "2017-08-10 15:42:08""parent_id" => 4"children" => []]]]2 => array:7 [▼"id" => 7"created_at" => "2017-08-10 15:47:09""updated_at" => "2017-08-10 15:50:37""parent_id" => 0"children" => array:1 [▼0 => array:7 [▼"id" => 8"created_at" => "2017-08-10 15:47:20""updated_at" => "2017-08-10 15:50:48""parent_id" => 7"children" => array:1 [

       0 => array:7 [▼
            "id" => 9 "created_at" => "2017-08-10 15:49:17" "updated_at" => "2017-08-10 15:51:08" "parent_id" => 8 "children" => [] ]]
] ] ] ]

创建一个方法

 1     public function getCategoryChildrenIds($data, $lev = 0)
 2     {
 3         $arr = [];
 4         foreach ($data as $key => $value) {
 5             if ($lev) {
 6                 $arr[] = $value->id;
 7             }
 8
 9             if( isset($value['children'])) {
10                 $childLev = $lev + 1;
11                 $arr = array_merge($arr, self::getCategoryChildrenIds($value['children'], $childLev));
12
13             }
14
15         }
16         return $arr;
17     }

获取顶级下所有下级id

array:5 [▼0 => 21 => 32 => 53 => 84 => 9
]

转载于:https://www.cnblogs.com/smallyi/p/7421719.html

Mysql 递归获取多重数组数据相关推荐

  1. mysql fetchall获取不到数据_解决pymysql cursor.fetchall() 获取不到数据的问题

    1.之前的写法(不报错): data = cursor.fetchall() data_name = data[0]['task_type'] 2.简洁的写法(报错): data = cursor.f ...

  2. 递归获取翻页数据(TAPD接口实战)

    前言:很多接口是通过翻页获取数据,如何通过递归的方法获取翻页数据呢 以下用递归的方法获取TAPD缺陷数据: def get_bus_from_project_v2(workspace_id, limi ...

  3. php mysql只获取一条数据_php mysql 查询只返回第一条数据

    php mysql 查询只返回第一条数据 $search = mysql_query("select * from `info`"); $search = mysql_fetch_ ...

  4. c mysql如何获取照片_MYSQL数据库存取图片等文件(C语言)

    直接把文件放入数据库中比较适合小文件,方便管理,比如头像图片和声音,如果是较大型的文件建议不要直接存进数据库,而是放在服务器,把文件索引放在数据库. MYSQL 中有个数据对象是 BLOB,即 Bin ...

  5. mysql一次性获取几十万数据_《快速念咒——MySQL自学入门指南》:第2章——从表中获取更多数据(前言)...

    (欢迎大家关注订阅号--"快速念咒") 下一节我们将会使用两张新表--happyorder和happydetail.创建两张表的代码如下-- 创建happyorder表: CREA ...

  6. SQL Server 利用WITH AS递归获取层级关系数据

    WITH AS短语,也叫做子查询部分(subquery factoring),在SQL Server 2005中提供了一种解决方案,这就是公用表表达式(CTE),使用CTE,可以使SQL语句的可维护性 ...

  7. BeanShell遍历JSON双重嵌入数组获取数组数据

    BeanShell遍历JSON双重嵌入数组获取数组数据 1.概述 今天做接口自动化场景测试过程中遇到一个比较复杂的场景,创建新建订单业务,接口参数依赖未占用资讯类型.开发提供了一个所有资讯查询接口,该 ...

  8. mysql高效率写法_mysql高效率随机获取n条数据写法

    今天做项目遇到这个问题,本来想用mysql自带的随机函数来实现,但是想到这样做功能是实现了,但是效率真的好差!一下子想不到好的方法,就去网上找了一下,记录下来,好好研究学习一下. ID连续的情况下(注 ...

  9. MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

最新文章

  1. 【Qt】在QtCreator中使用Ctrl+Shift+f快捷键打开高级查找窗口失效的解决方法
  2. 11/1787, 哈工大小学妹的比赛上分经验,附战友招募
  3. AngularJS表单验证
  4. GetLastError()函数返回值及含义
  5. CentOS中使用Docker来部署Nginx
  6. Angular view container删除view实例的过程
  7. Shell脚本中循环select命令用法笔记
  8. python掷骰子_用于掷骰子的Python程序(2人骰子游戏)
  9. 程序员如何技术划水,手把手教你写Android项目文档,绝对干货
  10. 2016计蒜之道复赛 百度地图的实时路况 floyd+cdq分治
  11. 小甲鱼Python第二十八讲(文件)
  12. 论高碳艺术与低碳艺术
  13. Unity3d的一些简单坑
  14. 查询具体到时分秒的时间段数据(查询昨天的下午四点到今天的下午四点的数据)
  15. php 502 bad gateway 解决方法
  16. 综述 | 实例分割研究
  17. Qt图形视图框架--图元总结
  18. 人工神经元网络基本构成,人工神经网络主要有
  19. Java支付宝二维码支付和退款,微信二维码支付
  20. 2021年高处作业登高架设证上机考试题库

热门文章

  1. VS2010 win32项目windows窗体程序 向导生成代码解析
  2. 查看linux中的TCP连接数
  3. 【干货】JDK动态代理的实现原理以及如何手写一个JDK动态代理
  4. 国内maven库镜像(阿里云)
  5. iOS UI基础-4.1应用程序管理 字典转Model
  6. Oracle 12C -- 扩展varchar2、nvarchar2、和raw数据类型的大小限制
  7. 最短路径问题经典题目汇总
  8. 【 Makefile 编程基础之三】详解 Makefile 变量的定义规则使用!
  9. java读取文件效率问题
  10. 修复电脑右键没有新建记事本