laravel好用的collection方法

一.背景:
业务开发对二维数组频繁操作,故总结一下好用的collection方法。
原本数据结构:

Illuminate\Database\Eloquent\Collection {#2988
     all: [
       App\Model\NotifyModel {#3009
         notify_id: 1,
         user_id: 1,
         costomer_id: 3,
         is_read: 0,
       },
       App\Model\NotifyModel {#3011
         notify_id: 2,
         user_id: 3,
         costomer_id: 546,
         is_read: 0,
       },
       App\Model\NotifyModel {#3001
         notify_id: 3,
         user_id: 4,
         costomer_id: 5,
         is_read: 0,
       },
     ],
   }

1.pluck 方法可以获取集合中指定键对应的所有值:
可以单独取出某一列,如user_id
结果:Illuminate\Database\Eloquent\Collection {#3000
all: [
1 => 1,
3 => 3,
4 => 4,
],
}

2.keyBy 方法以指定的键作为集合的键。如果多个集合项具有相同的键,则只有最后一个集合项会显示在新集合中。
可以取出以user_id的关联数据
结果:
Illuminate\Database\Eloquent\Collection {#2981
all: [
1 => App\Model\NotifyModel {#3009
notify_id: 1,
user_id: 1,
costomer_id: 3,
is_read: 0,
},
3 => App\Model\NotifyModel {#3011
notify_id: 2,
user_id: 3,
costomer_id: 546,
is_read: 0,
},
4 => App\Model\NotifyModel {#3001
notify_id: 3,
user_id: 4,
costomer_id: 5,
is_read: 0,
},
],
}
3.mapWithKeys 方法遍历集合并将每个值传入给定的回调函数。该回调函数将返回一个包含单个键 / 值对的关联数组。跟keyBy相比可以制定值为更小的粒度。
4.shuffle 方法随机打乱集合项。
5.max 方法返回指定键的最大值:
$max = collect([[‘foo’ => 10], [‘foo’ => 20]])->max(‘foo’);

// 输出20

$max = collect([1, 2, 3, 4, 5])->max();
//输出5

6.reject 方法使用指定的回调函数过滤集合。如果回调函数返回 true 就会把对应的集合项从集合中移除:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值