laravel常用集合的使用

创建集合:

//数组1
$connection = collect([
    ['name'=>'jack','age'=>'18','email'=>'ceshi@qq.com'],
    ['name'=>'emma','age'=>'17','email'=>'test@qq.com'],
    ['name'=>'kevin','age'=>'19','email'=>'ceshi@163.com'],
    ['name'=>'william','age'=>'20','email'=>'test@163.com'],
]);

//数组2
$connection2 = collect([3,5,2,4,1]);

//数组3
$connection3 = collect(['name'=>'jack','age'=>'18','email'=>'ceshi@qq.com']);

 

计算平均值:

$connection->avg('age');//多维数组
$connection->avg();//一维数组

 

计算总数:

$connection->count();

 

计算集合中每个值的出现次数:

$connection->countBy(function($value) {
    return substr(strrchr($value['email'], "@"), 1);
});

 

返回两个集合中差值集合:

$connection2->diff([2,3,4]);

 

返回满足运算结果的第一条数据:

$connection->first(function($value) {
    return $value['age'] > 2;
});

 

多维数组转化成一维数组:

$connection->flatten();

 

获取指定键的值:

$connection3->get('name');

 

判断键是否存在:

$connection3->has('name');

 

移出最后一个值:

$connection2->pop();

 

获取指定键信息并删除:

$connection3->pull('email');

 

追加信息:

$connection2->push(6);

 

追加数组信息:

$connection3->put('sex', 'boy');

 

返回指定元素个数之后的数据:

$connection3->slice(1);

 

正序排序:

$connection2->sort();//只排序,不修改下标
$connection2->sort()->values();//排序并修改下标

 

倒序倒序:

$connection2->sortDesc();//只排序,不修改下标
$connection2->sortDesc()->values();//排序并修改下标

 

获取符合条件的数据:

$connection->where('age', '>', 18);

 

将集合分割为指定大小的块:

$connection2->chunk(2);

 

参考文档:
https://learnku.com/docs/laravel/8.x/collections/9390
https://learnku.com/articles/20894
https://learnku.com/laravel/t/12571/remember-a-performance-optimization-for-laravel-permission-projects(此篇与本博客无关,若感兴趣可以看看)

 

【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/facetwitter/p/15812694.html

posted @ 2022-01-17 11:21  saneim  阅读(96)  评论(0编辑  收藏  举报