Laravel Collection reduce 创建 lookup 数组
打赏作者

Laravel Collection reduce 创建 lookup 数组

用 Collection 重构代码 >> Laravel Collection reduce 创建 lookup 数组 视频发布于 2016-09-08

在 Laravel Collection 当中,还有一个非常常用的方法:reduce,这对于我们在创建 lookup 数组的时候非常的有用,这样就可以使用 Collection 重构一个复杂的数组,将它变成简单 key value 这样的 lookup 数组。
shawnzhang31
collect($employees)->pluck('email','name')
JellyBool 回复 shawnzhang31

哇!!!that’s cool !

尼好再见 回复 shawnzhang31

厉害了我的哥!

liudong0763 回复 shawnzhang31

that’s awsome

tanjibo 回复 shawnzhang31

厉害,word 哥

mostwin 回复 shawnzhang31

厉害了word 哥

Kwong Yan Chan 回复 shawnzhang31

厉害了World哥,一行秒杀。

perfectboook

竟然有我 😃 ,楼上那个略屌。。

dope2008
dd(collect($list)->pluck('email','name'));
dd(collect($list)->lists('email','name'));
shawnzhang31 回复 dope2008

@deprecated since version 5.2. Use the “pluck” method directly. 我说文档里怎么没写呢,但是感觉 list 这个单词更直观点,不知道为什么被废弃了

JellyBool 回复 shawnzhang31

在 5.2 之前,lists 方法里面就是封装的 pluck ,没记错的话。

mostwin

厉害了word 哥

John Howard

这就是我想要的答案,但是有第二层数组怎么解决?取第一层数组的NAME和第二层数组的AGE,在前台循环显示

godluck

感觉php元素的函数 array_map、array_reduce、array_column 也能实现collection的很多功能啊。

JellyBool 回复 godluck

是的啊,其实 collection 源码很多就是用的这些函数

myhyperion

array_reduce的第三个参数默认是NULL,所以视频里的[] 没必要传递过去吧?试了一下不传递那个空数组返回的结果也是一致的

JellyBool 回复 myhyperion

可以!加参数可能更可读 readable