Laravel Collect集合用pluck取多维数组中某个字段值
Laravel Collect集合用pluck取多维数组中某个字段值
例如目前有多维数组结构如下:
[{"id": 29,"shop_id": 15,"good_id": 2520,"type": "FIX","name": "1312","freedom_count": 1,"group_items": [{"id": 2461,"good_group_id": 29,"shop_id": 15,"good_id": 1687,"quantity": 1,"add_price": 3000,"sort": 1,"good": {"id": 1687,"title": "可乐","price": 12000,"unit": "杯","status": "NORMAL"}},{"id": 2459,"good_group_id": 29,"shop_id": 15,"good_id": 2516,"quantity": 1,"add_price": 1000,"sort": 1,"good": {"id": 2516,"title": "雪碧","price": 10000,"unit": "杯","status": "NORMAL"}},{"id": 62,"good_group_id": 29,"shop_id": 15,"good_id": 2460,"quantity": 2,"add_price": 0,"sort": 1,"good": {"id": 2460,"title": "咖啡","price": 9000,"unit": "杯","status": "NORMAL"}}]},{"id": 36,"shop_id": 15,"good_id": 2520,"type": "FREEDOM","name": "自由搭配","freedom_count": 2,"group_items": [{"id": 2464,"good_group_id": 36,"shop_id": 15,"good_id": 2460,"quantity": 1,"add_price": 0,"sort": 1,"good": {"id": 2460,"title": "圣代奶茶","price": 9000,"unit": "杯","status": "NORMAL"}},{"id": 2465,"good_group_id": 36,"shop_id": 15,"good_id": 1687,"quantity": 1,"add_price": 0,"sort": 1,"good": {"id": 1687,"title": "珍珠奶茶","price": 12000,"unit": "杯","status": "NORMAL"}}]}
]
要从以上3维数组中取出最底层good
对象的title
属性,用以下方式可以直接获取:
$json = '[{"id": 29,"shop_id": 15,"good_id": 2520,"type": "FIX","name": "1312","freedom_count": 1,"group_items": [{"id": 2461,"good_group_id": 29,"shop_id": 15,"good_id": 1687,"quantity": 1,"add_price": 3000,"sort": 1,"good": {"id": 1687,"title": "可乐","price": 12000,"unit": "杯","status": "NORMAL"}},{"id": 2459,"good_group_id": 29,"shop_id": 15,"good_id": 2516,"quantity": 1,"add_price": 1000,"sort": 1,"good": {"id": 2516,"title": "雪碧","price": 10000,"unit": "杯","status": "NORMAL"}},{"id": 62,"good_group_id": 29,"shop_id": 15,"good_id": 2460,"quantity": 2,"add_price": 0,"sort": 1,"good": {"id": 2460,"title": "咖啡","price": 9000,"unit": "杯","status": "NORMAL"}}]},{"id": 36,"shop_id": 15,"good_id": 2520,"type": "FREEDOM","name": "自由搭配","freedom_count": 2,"group_items": [{"id": 2464,"good_group_id": 36,"shop_id": 15,"good_id": 2460,"quantity": 1,"add_price": 0,"sort": 1,"good": {"id": 2460,"title": "圣代奶茶","price": 9000,"unit": "杯","status": "NORMAL"}},{"id": 2465,"good_group_id": 36,"shop_id": 15,"good_id": 1687,"quantity": 1,"add_price": 0,"sort": 1,"good": {"id": 1687,"title": "珍珠奶茶","price": 12000,"unit": "杯","status": "NORMAL"}}]}]';
$arr = json_decode($json, true);
$titles = collect($arr)->pluck('group_items.*.good.title')->collapse()->toArray();
dd($titles);
每多一层级的数组可以用通配符 * 代表,之后继续找下级对象字段即可;collapse函数是将多个数组合并为单个数组;
结果:
array:5 [▼0 => "可乐"1 => "雪碧"2 => "咖啡"3 => "圣代奶茶"4 => "珍珠奶茶"
]
Laravel Collect集合用pluck取多维数组中某个字段值相关推荐
- php某列为键数组为值,PHP 将二维数组中某列值作为数组的键名 -- 超实用
有时候,想通过数组的中某字段值, 然后再在二维数组中获取存在该字段值的数组: 一般能想到的就是foreach 遍历比较一下跟该字段值一样,就获取到想要的数组,如下: //测试二维数组 $arr =ar ...
- MATLAB取3维数组中的一层?
close all; bbb = imgs_train(400,:,:); %取其中的一层 aaabbb = squeeze(bbb); imshow(aaabbb,[]); figure; imhi ...
- php除去重复数组算法,如何从PHP中的多维数组中删除重复值
我有一个类似的问题,但我找到了100%的工作解决方案.<?php function super_unique($array,$key) { $temp_array = []; forea ...
- php 根据多维数组中的某个值进行合并并且不删除数组
{ "code": 0, "msg": "操作成功", "data": [ { "cart_id": ...
- php 把多维数组中,某值相同的项合并,重组数据(不用再愁postgres中无mysql中的group_concat()功能)
对数组$array重组:$array = array(array('id'=>1,'name'=>'aa','pwd'=>'12'),array('id'=>1,'name'= ...
- php根据指定字段去重,php二维数组根据某个字段去重
php的二维数组根据某个字段去重,在这默认为二维数组的结构是一样的,现在根据二维数组里的id字段去重,把id相同的重复的元素去掉 /** * 二维数组根据某个字段去重 * @param array $ ...
- php根据某个字段去重,php二维数组根据某个字段去重
php的二维数组根据某个字段去重,在这默认为二维数组的结构是一样的,现在根据二维数组里的id字段去重,把id相同的重复的元素去掉 /** * 二维数组根据某个字段去重 * @param array $ ...
- python取前三位_Python 实现取多维数组第n维的前几位
Python 实现取多维数组第n维的前几位 现在我们有一个shape为(7352, 9, 128, 1)的numpy数组. 想要取出第2维的前三个数据,构成新数组(7352, 3, 128, 1) 我 ...
- 《剑指offer》c++版本 4.二维数组中的查找
如题: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照 从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
最新文章
- 开发购物车应用程序(1)
- Linux2.6--虚拟文件系统
- 每次重启需要source /etc/profile的原因-环境变量
- Linux学习之033_2
- SpringCloud与子项目版本兼容说明
- 【华为云技术分享】干货分享丨jvm系列:dump文件深度分析
- java 操作vss,java开发常用工具总结,java开发常用工具
- while循环(包含死循环、while嵌套)
- JavaWeb一些常用操作
- MySQL DDL--ghost执行模板和参数
- 工厂方法(FactoryMethod)模式
- EntityFramework codefirst
- UOJ #117. 欧拉回路
- Linux C 字符串输入函数 gets()、fgets()、scanf() 详解
- 应用层安全协议Kerberos
- 关闭MySQL日志,删除mysql-bin.0000*日志文件
- 【转载】Java 对象之死
- 王道考研数据结构笔记
- 病毒及攻击防御手册之六
- linux下安装打字软件,linux系统指法练习与打字游戏软件
热门文章
- 三角形,斜线,表头css实现方法
- 为什么应该学好软件工程?
- Chapter3-线性模型线性模型
- 解决String cannot be cast to java.util.List报错
- Biotin-PEG-CHO,生物素PEG醛基
- 计算机图形学透视投影知识点,计算机图形学
- OC中类别(Catagory)基本使用
- 信息传输速率与传信率_数据、信号、码元传输速率和信息传输速率等概念
- 计算机毕业设计Java-超市会员积分管理系统-(源码+系统+mysql数据库+lw文档)
- Celery+django+redis异步执行任务