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对象时发现,原有的更新代码无法更新复杂的数据类型对象.恰好看到张占岭老师有对该方法做相关的改进,因此全抄了下来. 总的核心思想就是运用反射与递归,对对象属性一层一层挖掘下去,循环创 ...
随机推荐
- sublime text3支持Vue文件高亮显示
sublime text 默认打开.vue文件全部都是白色的,不是特别方便.安装插件可以做到代码高亮显示 1.插件vue-syntax-highlight 下载地址:github https://gi ...
- Kettle系列: 马进举开源的Kettle通用插件 KettleEasyExpand
扩展Kettle功能, 经常使用 user defined java class 组件, 或者自己开发Java插件. 两种方式都有各自的痛点: 1. 在user defined java class ...
- MongoDB统计文档(Document)的数组(Array)中的各个元素出现的次数
一,问题描述 [使用 unwind 操作符 “解包” Document 里面的Array中的每个元素,然后使用 group 分组统计,最后使用 sort 对分组结果排序] 从 images.json ...
- Android SVN上传项目
方式一: 1 工具栏 VCS ——import into Version Control - Share Project (SubVersion)(注意不要用import into SubVersio ...
- [译]MediatR, FluentValidation, and Ninject using Decorators
原文 CQRS 我是CQRS模式的粉丝.对我来说CQRS能让我有更优雅的实现.它同样也有一些缺点:通常需要更多的类,workflow不总是清晰的. MediatR MediatR的文档非常不错,在这就 ...
- Mac pro 装双系统 参考
15岁觉得游泳难,放弃游泳,到18岁遇到一个你喜欢的人约你去游泳,你只好说“我不会耶”.18岁觉得英文难,放弃英文,28岁出现一个很棒但要会英文的工作,你只好说“我不会耶”.人生前期越嫌麻烦,越懒得学 ...
- Flume思维导图
- centos7 五大查找常用命令
1.find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件. find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> ...
- vue请求java服务端并返回数据
最近在自学vue怎么与java进行数据交互.其实axios还是挺简单的,与ajax请求几乎一样,无外乎也就是要解决下跨域的问题. 废话不多说了,直接贴代码,一看就懂! //向springmvc Con ...
- 自定义Banner
Spring Boot项目启动时,默认的打印样式如下 自定义 在/src/main/resources目录下新建banner.txt,在里面输入要打印的文字即可,例如: 图形制作网站:http://w ...