Mysql 递归获取多重数组数据
多重数据 $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" => []
]
]
] ] ] ]
创建一个方法
public function getCategoryChildrenIds($data, $lev = 0)
{
$arr = [];
foreach ($data as $key => $value) {
if ($lev) {
$arr[] = $value->id;
} if( isset($value['children'])) {
$childLev = $lev + 1;
$arr = array_merge($arr, self::getCategoryChildrenIds($value['children'], $childLev)); } }
return $arr;
}
获取顶级下所有下级id
array:5 [▼
0 => 2
1 => 3
2 => 5
3 => 8
4 => 9
]
Mysql 递归获取多重数组数据的更多相关文章
- 【吐血分享】SQL Server With As 递归获取层级关系数据
纯洁的一周又开始了,今天看到一则新闻,笑尿了,和袁友们一起娱乐下 最近两月在做基于Saas模式的人力资源管理产品,平常数据库设计我经常会遇到如下需求场景: 以前商城类网站在设计类型表的时候,设计成单表 ...
- SQL Server 利用WITH AS递归获取层级关系数据
WITH AS短语,也叫做子查询部分(subquery factoring),在SQL Server 2005中提供了一种解决方案,这就是公用表表达式(CTE),使用CTE,可以使SQL语句的可维护性 ...
- php获取checkbox数组的表单数据
提交表单的时候,对于checkbox多选框,name="field[]",此时php获取的数组为:从0开始的索引数组:如果name="field[n]" 有数字 ...
- Loadrunner脚本优化-参数化之关联MySQL数据库获取数据
脚本优化-参数化之关联MySQL数据库获取数据 by:授客 QQ:1033553122 测试环境: Loadrunner 11 Win7 64位 实操: 1. 安装MySQL ODBC驱动程序 O ...
- Jmeter4.0 _Beanshell解析并获取json响应数据数组长度
我们在做jmeter接口测试的时候,有时候碰到开发没返回数据total,只返回了一条条记录,可是呢,我们又需要知道到底返回了多少条数据时,咋办呢?咋办呢?咋办呢? 不要急,接下来,让我们见证奇迹是如何 ...
- MySQL中获取天、周、月等数据
MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...
- Dapper操作MySQL数据库获取JSON数据中文乱码
前言 在项目中利用Dapper将JSON数据存储到MySQL数据库,结果发现JSON数据中的中文乱码,特此记录,希望对存储JSON的童鞋能有所帮助,文中若有错误之处,还望批评指正. Dapper获取J ...
- mysql 随机获取一条或多条数据
若要在i ≤r≤ j 这个范围得到一个随机整数r ,需要用到表达式 FLOOR( RAND() * (j – i)+i),RLOOR()取整树部分,RAND()生成0~1的随机数.ROUND(x,n) ...
- 【MongoDB】递归获取字段更新表达式,更新复杂数据类型对象
在实际更新Mongo对象时发现,原有的更新代码无法更新复杂的数据类型对象.恰好看到张占岭老师有对该方法做相关的改进,因此全抄了下来. 总的核心思想就是运用反射与递归,对对象属性一层一层挖掘下去,循环创 ...
随机推荐
- [Android] Android Studio 修改Gradle使用国内源
Gradle 仓库中心的项目,下载速度又比较慢, 网上查询了下, 使用阿里云的Maven镜像仓库 在 project 的 build.gradle中修改如下: allprojects { reposi ...
- 实惠VPS推荐
1. Topmain 2. Virmach 3. BanwagonHost [备用地址1] [备用地址2] 4. HiFormance (跑路) 5. my.hosteons.com 6. . 以 ...
- springboot(二十三)Springboot2.X响应式编程
序言 Spring WebFlux是Spring Framework 5.0中引入的新的反应式Web框架与Spring MVC不同,它不需要Servlet API,完全异步和非阻塞,并 通过React ...
- Android资源重命名
Android资源比如图片重命名后,Resource里看到的还是之前的名字,可以关掉AndroidStudio,从新打开就正常了
- WMware虚拟机中连接ios真机
虚拟机中能看到IOS真机,但MAC OS看不到,进行如下设置虚拟机设置->USB控制器->USB兼容性->选择2.0
- Tomcat配置到JEE版eclipse中
接我上篇文中的tomcat下载,及环境变量配置,http://blog.csdn.net/qq_40223688/article/details/79451468 这篇文章我就讲一下怎么把tomcat ...
- MySQL Errno : 1062 错误修复
网站突然出现如下错误: MySQL Error : Duplicate entry '1' for key 'views' MySQL Errno : 1062 Message : Duplicate ...
- 2016-2017-2 20155324实验二《Java面向对象程序设计》实验报告
2016-2017-2 20155324实验二<Java面向对象程序设计>实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉 ...
- luogu P3175 [HAOI2015]按位或
传送门 如果每个位置上的数字的意义是这个位置被加进集合的最早时间,那么我们要求的就是集合中最大数的期望,使用Min-Max容斥,\(E(max(S))=\sum_{T\subset S}(-1)^{| ...
- kettle中的合并记录使用记录
注意:合并记录的使用前提是2个数据源都按比较关键字排过序,否则合并之后的数据不准确,可能会多出很多. 该步骤用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按 ...