关于 laravel 集合的使用
常用的有
count()
count
方法返回集合中所有项的数目:
$collection = collect([1, 2, 3, 4]);
$collection->count();
//
forPage()
forPage
方法返回新的包含给定页数数据项的集合:
$collection = collect([1, 2, 3, 4, 5, 6, 7, 8, 9])->forPage(2, 3); $collection->all();
// [4, 5, 6]
map()
map
方法遍历集合并传递每个值给给定回调。该回调可以修改数据项并返回,从而生成一个新的经过修改的集合:
$collection = collect([1, 2, 3, 4, 5]); $multiplied = $collection->map(function ($item, $key) {
return $item * 2;
}); $multiplied->all();
// [2, 4, 6, 8, 10]
groupBy()
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(); /*
[
'account-x10' => [
['account_id' => 'account-x10', 'product' => 'Chair'],
['account_id' => 'account-x10', 'product' => 'Bookcase'],
],
'account-x11' => [
['account_id' => 'account-x11', 'product' => 'Desk'],
],
]
*/
filter()
filter
方法通过给定回调过滤集合,只有通过给定测试的数据项才会保留下来:
$collection = collect([1, 2, 3, 4]); $filtered = $collection->filter(function ($item) {
return $item > 2;
}); $filtered->all();
// [3, 4]
collapse()
collapse
方法将一个多维数组集合收缩成一个一维数组:
$collection = collect([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
$collapsed = $collection->collapse();
$collapsed->all();
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
flatten()
flatten
方法将多维度的集合变成一维的:
$collection = collect(['name' => 'taylor', 'languages' => ['php', 'javascript']]);
$flattened = $collection->flatten();
$flattened->all();
// ['taylor', 'php', 'javascript'];
注意:collapse() 与 flatten() 效果是不相同的;
last()
last
方法返回通过测试的集合的最后一个元素:
collect([1, 2, 3, 4])->last(function ($key, $value) {
return $value < 3;
});
//
merge()
merge
方法合并给定数组到集合。该数组中的任何字符串键匹配集合中的字符串键的将会重写集合中的值:
$collection = collect(['product_id' => 1, 'name' => 'Desk']);
$merged = $collection->merge(['price' => 100, 'discount' => false]);
$merged->all();
// ['product_id' => 1, 'name' => 'Desk', 'price' => 100, 'discount' => false]
pluck()
pluck
方法为给定键获取所有集合值:
$collection = collect([
['product_id' => 'prod-100', 'name' => 'Desk'],
['product_id' => 'prod-200', 'name' => 'Chair'],
]); $plucked = $collection->pluck('name'); $plucked->all();
// ['Desk', 'Chair']
search()
search
方法为给定值查询集合,如果找到的话返回对应的键,如果没找到,则返回false
:
$collection = collect([2, 4, 6, 8]);
$collection->search(4);
//
上面的搜索使用的是松散比较,要使用严格比较,传递true
作为第二个参数到该方法:
$collection->search('4', true);
// false
sum()
sum
方法返回集合中所有数据项的和:
collect([1, 2, 3, 4, 5])->sum();
//
toArray()
toArray
方法将集合转化为一个原生的PHP数组。如果集合的值是Eloquent模型,该模型也会被转化为数组:
$collection = collect(['name' => 'Desk', 'price' => 200]);
$collection->toArray(); /*
[
['name' => 'Desk', 'price' => 200],
]
*/
注意:toArray
还将所有嵌套对象转化为数组。如果你想要获取底层数组,使用all
方法。
toJson()
toJson
方法将集合转化为JSON:
$collection = collect(['name' => 'Desk', 'price' => 200]); $collection->toJson();
// '{"name":"Desk","price":200}'
unique()
unique
方法返回集合中所有的唯一数据项:
$collection = collect([1, 1, 2, 2, 3, 4, 2]);
$unique = $collection->unique();
$unique->values()->all();
// [1, 2, 3, 4]
可查询资料 http://laravelacademy.org/post/178.html#toc_10
【Tag: collection】http://laravelacademy.org/post/178.html#ipt_kb_toc_178_3
【 Laravel 5.1 文档 ] 服务 —— 集合】http://laravelacademy.org/post/178.html#ipt_kb_toc_178_49
【 Laravel 5.4 文档 ] 综合话题 —— 集合】http://laravelacademy.org/post/6863.html
关于 laravel 集合的使用的更多相关文章
- 你可能需要了解下Laravel集合
前言 集合通过 Illuminate\Support\Collection 进行实例,Laravel的内核大部分的参数传递都用到了集合,但这并不代表集合就是好的.Laravel作为快捷并优雅的开发框架 ...
- Laravel集合的简单理解
本篇文章给大家带来的内容是关于Laravel集合的简单理解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 前言 集合通过 Illuminate\Database\Eloquent\C ...
- laravel 集合
最近一直在用laravel框架,比较喜欢laravel的ORM(通常我们理解的Model)...但是默认情况下,Eloquent 查询的结果总是返回 Collection 实例...所有不得不了解co ...
- laravel集合
1.简介 Illuminate\Support\Collection 类为处理数组数据提供了平滑.方便的封装.例如,查看下面的代码,我们使用辅助函数 collect 创建一个新的集合实例,为每一个元素 ...
- laravel 集合接口
只记下几个常用的,其他的看这里:http://laravelacademy.org/post/6293.html 1)什么是集合? 就是laravel查询构建器查询返回的数据结果(get first ...
- Laravel 集合的处理
其中的方法有: $arrs = collect($arr)->collapse()->collapse() //去除最外一层数组,不论最外层数组时否有值,都会去除掉 collect($ar ...
- laravel框架总结(十一) -- 集合
创建集合: collect 辅助函数会利用传入的数组生成一个新的 Illuminate\Support\Collection 实例. $collection = collect([1, 2, 3] ...
- laravel5.2总结--集合
类(Laravel集合基类) Illuminate\Support\Collection 类提供一个流畅.便利的封装来操控数组数据,官方提供了很多辅助函数,方便对数据进行各种处理,Coll ...
- Laravel 最佳实践
单一职责原则 一个类和一个方法应该只有一个责任. 例如: public function getFullNameAttribute() { if (auth()->user() &&am ...
随机推荐
- 2、Spring之AOP
AOP术语 通知:定义了切面是什么以及何时使用.除了要描述页面要完成的工作,通知还解决了何时执行这个工作的问题. 连接点:连接点是一个物理的存在.这个点可以是调用方法时.抛出异常时.甚至是修改一个字段 ...
- 检测IE浏览器兼容Edge模式及IE11
document.documentMode || +(navigator.userAgent.match(/MSIE (\d+)/) && RegExp.$1) 判断布尔值
- 转:ITopologicalOperator Buffer调用异常的解决方法(来源网络)
/// <summary> /// 用拓扑分析求出缓冲区范围. /// 由于ArcGIS的问题,有时调用会出异常,因此需要循环调用 /// </summary> ...
- 用Webstorm 运行React-native 工程时,出错:xcrun: error: unable to find utility "instruments", not a developer tool or in PATH
解决方法:在 终端执行如下命令 sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/ 注意:前提是你已经安装了xcode
- Python——追加学习笔记(四)
函数 1.python里的函数可以返回一个值或者对象,知识在返回一个容器对象的时候有点不同,看起来像是能返回多个对象. >>> def bar(): ... return 'abc' ...
- 一键生成http服务器
如果你想用最简单的方法在内网共享目录,可以考虑为要共享的目录生成一个http服务器,这样就可以在内网任一台设备打开浏览器就可以浏览了.简单举几个例,有了这个http服务器就可以: 在手机浏览器里观看电 ...
- OAuth 2.0协议在SAP产品中的应用
阮一峰老师曾经在他的博文理解OAuth 2.0里对这个概念有了深入浅出的阐述. http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 本文会结合我 ...
- 怎样在linux下编写C程序并编译执行
一.Hello, world! 在linux下输入:(以hello.c为例)首先选中文件要保存的路径(如:cd work)vi hello.c(要编辑的文件名) 输入程序:# include<s ...
- Java Android 32位16位 MD5加密
// md5加密 32位小写 private String Md5(String sourceStr) { String result = ""; try { MessageDig ...
- python图片黑白化
#!/usr/bin/env python #-*- coding:utf-8 -*- from PIL import Image im = Image.open(r"C:\Users\wa ...