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取多维数组中某个字段值相关推荐

  1. php某列为键数组为值,PHP 将二维数组中某列值作为数组的键名 -- 超实用

    有时候,想通过数组的中某字段值, 然后再在二维数组中获取存在该字段值的数组: 一般能想到的就是foreach 遍历比较一下跟该字段值一样,就获取到想要的数组,如下: //测试二维数组 $arr =ar ...

  2. MATLAB取3维数组中的一层?

    close all; bbb = imgs_train(400,:,:); %取其中的一层 aaabbb = squeeze(bbb); imshow(aaabbb,[]); figure; imhi ...

  3. php除去重复数组算法,如何从PHP中的多维数组中删除重复值

    我有一个类似的问题,但我找到了100%的工作解决方案.<?php     function super_unique($array,$key) { $temp_array = []; forea ...

  4. php 根据多维数组中的某个值进行合并并且不删除数组

    { "code": 0, "msg": "操作成功", "data": [ { "cart_id": ...

  5. php 把多维数组中,某值相同的项合并,重组数据(不用再愁postgres中无mysql中的group_concat()功能)

    对数组$array重组:$array = array(array('id'=>1,'name'=>'aa','pwd'=>'12'),array('id'=>1,'name'= ...

  6. php根据指定字段去重,php二维数组根据某个字段去重

    php的二维数组根据某个字段去重,在这默认为二维数组的结构是一样的,现在根据二维数组里的id字段去重,把id相同的重复的元素去掉 /** * 二维数组根据某个字段去重 * @param array $ ...

  7. php根据某个字段去重,php二维数组根据某个字段去重

    php的二维数组根据某个字段去重,在这默认为二维数组的结构是一样的,现在根据二维数组里的id字段去重,把id相同的重复的元素去掉 /** * 二维数组根据某个字段去重 * @param array $ ...

  8. python取前三位_Python 实现取多维数组第n维的前几位

    Python 实现取多维数组第n维的前几位 现在我们有一个shape为(7352, 9, 128, 1)的numpy数组. 想要取出第2维的前三个数据,构成新数组(7352, 3, 128, 1) 我 ...

  9. 《剑指offer》c++版本 4.二维数组中的查找

    如题: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照 从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

最新文章

  1. 开发购物车应用程序(1)
  2. Linux2.6--虚拟文件系统
  3. 每次重启需要source /etc/profile的原因-环境变量
  4. Linux学习之033_2
  5. SpringCloud与子项目版本兼容说明
  6. 【华为云技术分享】干货分享丨jvm系列:dump文件深度分析
  7. java 操作vss,java开发常用工具总结,java开发常用工具
  8. while循环(包含死循环、while嵌套)
  9. JavaWeb一些常用操作
  10. MySQL DDL--ghost执行模板和参数
  11. 工厂方法(FactoryMethod)模式
  12. EntityFramework codefirst
  13. UOJ #117. 欧拉回路
  14. Linux C 字符串输入函数 gets()、fgets()、scanf() 详解
  15. 应用层安全协议Kerberos
  16. 关闭MySQL日志,删除mysql-bin.0000*日志文件
  17. 【转载】Java 对象之死
  18. 王道考研数据结构笔记
  19. 病毒及攻击防御手册之六
  20. linux下安装打字软件,linux系统指法练习与打字游戏软件

热门文章

  1. 三角形,斜线,表头css实现方法
  2. 为什么应该学好软件工程?
  3. Chapter3-线性模型线性模型
  4. 解决String cannot be cast to java.util.List报错
  5. Biotin-PEG-CHO,生物素PEG醛基
  6. 计算机图形学透视投影知识点,计算机图形学
  7. OC中类别(Catagory)基本使用
  8. 信息传输速率与传信率_数据、信号、码元传输速率和信息传输速率等概念
  9. 计算机毕业设计Java-超市会员积分管理系统-(源码+系统+mysql数据库+lw文档)
  10. Celery+django+redis异步执行任务