17

clipboard.png

前言

集合通过 Illuminate\Support\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通过给定的键值过滤集合

致谢

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


CrazyCodes
16.9k 声望14.8k 粉丝

I am CrazyCodes,生命不息,编码不止。