乐趣区

你可能需要了解下Laravel集合

前言
集合通过 Illuminate\Database\Eloquent\Collection 进行实例,Laravel 的内核大部分的参数传递都用到了集合,但这并不代表集合就是好的。Laravel 作为快捷并优雅的开发框架,是有他一定的道理所在的,并非因他的路由、DB、监听器等等。当你需要处理一组数组时,你可能就需要它帮助你快捷的解决实际问题。
创建集合
$collection = collect([1, 2, 3]);
显而易见,这是一部非常简单的操作,请打住你想说“这种操作很复杂”的话,它更类似与早起 PHP5.x 的版本的声明方式。
$collection = array(1,2,3);
laravel 对于 collection 也没有做任何复杂的事情,会在下一章《Laravel 源码解析之集合》,谢谢
打回原型
如果你想将集合转换为数据,其使用方法也非常的简单
collect([1, 2, 3])->all();
——>
[1, 2, 3]
在不过与考虑性能的情况下,可以使用 Laravel 集合,毕竟它将帮你完成数组操作的百分之九十的工作。例如我们需要通过一个水平线切分数组,将其分为 2 个及以上的数组个数。使用集合可以酱紫做~
$collection = collect([1, 2, 3, 4, 5, 6, 7]);

$chunks = $collection->chunk(4);

$chunks->toArray();

// [[1, 2, 3, 4], [5, 6, 7]]
并且有些还根据 sql 语句的查询方式来设计的方法,下面就让来看下具体都有哪些吧。
方法列表
这里列出一些常用的集合操作方法,具体及全部请操作官方。

方法
注释

all
将集合打回原型

average & avg
计算平均值

chunk
将集合拆成多个指定大小的小集合

collapse
将多个数组的集合合并成一个数组的集合

combine
可以将一个集合的值作为「键」,再将另一个数组或者集合的值作为「值」合并成一个集合

concat
将给定的数组或集合值附加到集合的末尾

contains
判断集合是否包含给定的项目

count
返回该集合内的项目总数

dd
打印集合的项目并结束脚本执行

diff
将集合与其它集合或纯 PHP 数组进行值的比较,然后返回原集合中存在而给定集合中不存在的值

each
迭代集合中的内容并将其传递到回调函数中

filter
使用给定的回调函数过滤集合的内容,只留下那些通过给定真实测试的内容

first
返回集合中通过给定真实测试的第一个元素

groupBy
根据给定的键对集合内的项目进行分组

push
把给定值添加到集合的末尾

put
在集合内设置给定的键值对

sortBy
通过给定的键对集合进行排序。排序后的集合保留了原数组键

where
通过给定的键值过滤集合

致谢
感谢你看到这里,希望本篇能够帮助到你。谢谢,还不抓紧去练习下集合?

退出移动版