laravel 集合

集合
$collection=collect([1,2,3]);
collect([1,2,3])->all();返回该集合所代表的底层 数组:
计算平均值:
$collection=collect([['name'=>'JavaScript: The Good Parts','pages'=>176],['name'=>'JavaScript: The Definitive Guide','pages'=>1096],]);$collection->avg('pages');

将集合拆成多个指定大小的较小集合: chunk
$collection=collect([1,2,3,4,5,6,7]);$chunks=$collection->chunk(4);$chunks->toArray();// [[1, 2, 3, 4], [5, 6, 7]]



$collection=collect([[1,2,3],[4,5,6],[7,8,9]]);$collapsed=$collection->collapse();

遍历集合中的项目,并将之传入回调函数: each
$collection=$collection->each(function($item,$key){//});

返回集合中除了指定键以外的所有项目 except ====== only
$collection=collect(['product_id'=>1,'price'=>100,'discount'=>false]);$filtered=$collection->except(['price','discount']);

使用回调函数筛选集合,只留下那些通过判断测试的项目:filter
$collection=collect([1,2,3,4]);$filtered=$collection->filter(function($value,$key){return$value>2;});

排除那些通过判断测试的项目 reject


选择性地传入遍历深度的参数 flatten
$products=$collection->flatten(1); //不写参数表示遍历最外一层

将集合中的键和对应的数值进行互换: flip
$collection=collect(['name'=>'taylor','framework'=>'laravel']);$flipped=$collection->flip();// ['taylor' => 'name', 'laravel' => 'framework']

通过集合的键来移除掉集合中的一个项目: froget
$collection=collect(['name'=>'taylor','framework'=>'laravel']);$collection->forget('name'); //没有返回值$collection->all();

返回指定键的项目。 get ->get('name','default-value');
$collection->get('email',function(){return'default-value';});

根据指定的「键」为集合内的项目分组: groupBy()
$collection=collect([['account_id'=>'account-x10','product'=>'Chair'],['account_id'=>'account-x10','product'=>'Bookcase'],['account_id'=>'account-x11','product'=>'Desk'],]);$grouped=$collection->groupBy('account_id');$grouped->toArray();

检查集合中是否含有指定的「键」(查 key) has()
$collection=collect(['account_id'=>1,'product'=>'Desk']);$collection->has('email'); // false

合并集合中的项目 implode
$collection=collect([['account_id'=>1,'product'=>'Desk'],['account_id'=>2,'product'=>'Chair'],]);$collection->implode('product',', '); // Desk, Chair

判断集合是否为空 isEmpty()
collect([])->isEmpty();

以指定键的值作为集合项目的键。如果几个数据项有相同的键,那在新集合中只显示最后一项: keyBy
$collection=collect([['product_id'=>'prod-100','name'=>'desk'],['product_id'=>'prod-200','name'=>'chair'],]);$keyed=$collection->keyBy('product_id');$keyed->all();
/* [ 'prod-100' => ['product_id' => 'prod-100', 'name' => 'Desk'], 'prod-200' => ['product_id' => 'prod-200', 'name' => 'Chair'], ]*/


返回该集合所有的键: keys()
$collection=collect(['prod-100'=>['product_id'=>'prod-100','name'=>'Desk'],'prod-200'=>['product_id'=>'prod-200','name'=>'Chair'],]);$keys=$collection->keys();$keys->all();

合并数组 + merge()
$collection=collect(['product_id'=>1,'price'=>100]);$merged=$collection->merge(['price'=>200,'discount'=>false]);$merged->all();// ['product_id' => 1, 'price' => 200, 'discount' => false]

获取集合指定键所对应的值 pluck()
$collection=collect([['product_id'=>'prod-100','name'=>'Desk'],['product_id'=>'prod-200','name'=>'Chair'],]);$plucked=$collection->pluck('name');
$plucked->all();// ['Desk', 'Chair']
$plucked=$collection->pluck('name','product_id');$plucked->all();// ['prod-100' => 'Desk', 'prod-200' => 'Chair']


在集合后面添加一个元素 push()
移除并返回集合最后一个项目 pop()

删除第一个集合项目 shift()
$collection=collect([1,2,3,4,5]);$collection->shift();// 1$collection->all();// [2, 3, 4, 5]

集合前面增加一项数组的值 prepend()
$collection=collect([1,2,3,4,5]);$collection->prepend(0);
$collection->prepend(0,'zero');
你可以传递第二个参数来设置新增加项的键:// ['zero' => 0, 'one' => 1, 'two', => 2]$collection->all();


把键对应的值从集合中移除并返回 pull()
$collection=collect(['product_id'=>'prod-100','name'=>'Desk']);$collection->pull('name');// 'Desk'$collection->all();// ['product_id' => 'prod-100']


查找集合某个元素 (查 value) search()
$collection=collect([2,4,6,8]);$collection->search(4,true);// 1


打乱集合顺序 shuffle()
$collection=collect([1,2,3,4,5]);$shuffled=$collection->shuffle();$shuffled->all(); // [3, 2, 5, 1, 4] // (generated randomly)

排序 sortBy() sortByDesc()
切割数组 splice("开始下标","截取长度","取代集合中被移除项目数组")

返回指定数量的集合 take(2) 拿前两个元素 take(-2)拿后两个元素

values() 返回Value()
toJson() 集合转换为JSON
toArray() 转换为数组
unique() 返回集合中所有唯一的项目
$collection=collect([['name'=>'iPhone 6','brand'=>'Apple','type'=>'phone'],['name'=>'iPhone 5','brand'=>'Apple','type'=>'phone'],['name'=>'Apple Watch','brand'=>'Apple','type'=>'watch'],['name'=>'Galaxy S6','brand'=>'Samsung','type'=>'phone'],['name'=>'Galaxy Gear','brand'=>'Samsung','type'=>'watch'],]);$unique=$collection->unique('brand');$unique->values()->all();
/* [ ['name' => 'iPhone 6', 'brand' => 'Apple', 'type' => 'phone'], ['name' => 'Galaxy S6', 'brand' => 'Samsung', 'type' => 'phone'], ]*/

以一对指定的「键/数值」筛选集合:where()
$collection=collect([['product'=>'Desk','price'=>200],['product'=>'Chair','price'=>100],['product'=>'Bookcase','price'=>150],['product'=>'Door','price'=>100],]);$filtered=$collection->where('price',100);$filtered->all();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值