Laravel 的集合 Collection
简介
Illuminate\Support\Collection
类提供一个流畅、便利的封装来操控数组数据。如下面的示例代码,我们用 collect
函数从数组中创建新的集合实例,对每一个元素运行 strtoupper
函数,然后移除所有的空元素:
$collection = collect(['taylor', 'abigail', null])->map(function ($name) {
return strtoupper($name);
})
->reject(function ($name) {
return empty($name);
});
如上面的代码示例,Collection
类支持链式调用,一般来说,每一个 Collection
方法会返回一个全新的 Collection
实例,你可以放心地进行链接调用。
创建集合
如上所述,collect
辅助函数会利用传入的数组生成一个新的 Illuminate\Support\Collection
实例。所以要创建一个集合就这么简单:
$collection = collect([1, 2, 3]);
默认 Eloquent 模型的查询结果总是以 Collection
实例返回。
可用的方法
接下来,我们将会探讨 Collection
类的所有方法。要记得的是,所有方法都支持链式调用,几乎所有的方法都会返回新的 Collection
实例,让你保留原版的集合以备不时之需。
all avg chunk collapse combine contains count diff diffKeys each every except filter first flatMap flatten flip forget forPage get groupBy has implode intersect isEmpty keyBy keys last map mapWithKeys max merge min nth only partition pipe pluck pop prepend pull push put random reduce reject reverse search shift shuffle slice sort sortBy sortByDesc splice split sum take toArray toJson transform union unique values when where whereStrict whereIn whereInStrict zip