你可能须要了解下Laravel集合

clipboard.png

前言

集合经过 Illuminate\Support\Collection 进行实例,Laravel的内核大部分的参数传递都用到了集合,但这并不表明集合就是好的。Laravel做为快捷并优雅的开发框架,是有他必定的道理所在的,并不是因他的路由、DB、监听器等等。当你须要处理一组数组时,你可能就须要它帮助你快捷的解决实际问题。laravel

建立集合

$collection = collect([1, 2, 3]);

显而易见,这是一部很是简单的操做,请打住你想说“这种操做很复杂”的话,它更相似与早起PHP5.x的版本的声明方式。sql

$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 经过给定的键值过滤集合

致谢

感谢你看到这里,但愿本篇可以帮助到你。谢谢,还不抓紧去练习下集合?spa

相关文章
相关标签/搜索