laravel5.1 集合

  • 简介
    集合是用来处理数组的类,该类的通过方法对底层数组进行操作。

  • 创建集合
    通过 collect 帮助函数创建集合

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

Eloquent 模型查询返回的也是集合类的实例,也可以使用集合的方法操作底层数组。

  • 可用的方法
    集合类的每一个方法几乎都返回一个集合对象,所以可以链式调用。
  1. all() 返回集合的底层数组
    collect([1, 2, 3])->all(); // [1, 2, 3]

  2. avg() 返回集合的平均值
    $average = collect([['foo' => 30], ['foo' => 10], ['foo' => 20]])->avg();
    collect([1, 1, 2, 4])->avg();

  3. chunk() 一个集合分割成多个小尺寸的小集合
    collect([1,2,3,4,5,6,7])->chunk(4);

  4. collapse() 将一个多维数组集合收缩成一个一维数组
    collect([[1, 2, 3], [4, 5, 6], [7, 8,9]])->collapse();

  5. contains() 判断集合是否包含一个给定项:

$collection = collect(['name' => 'Desk', 'price' => 100]);
$collection->contains('Desk');

6 . count() 返回集合中所有项的数目:
collect([1,2,3,4,5])->count();

7 .diff() 将集合和另一个集合或原生 PHP 数组作比较, 返回在前者而不再后者的

$collection = collect([1, 2, 3, 4, 5]);
$diff = $collection->diff([2, 4, 6, 8]);

8 .each 迭代集合中的数据项并传递每个数据项到给定回调:
$collection = $collection->each(function ($item, $key) { // });

9 .every() 返回集合中
collect([1, 2, 3, 4, 5])->every(2);

10 . except() 根据给定的键,从集合中排除一些元素,返回剩下的
collect(['product_id' => 1, 'price' => 100, 'discount' => false])->except(['price', 'discount']);

11 . filter() 通过给定回调过滤集合,只有通过给定测试的数据项才会保留下来

$collection->filter(function ($item) { return $item > 2; });

`collect([1, 2, 3, null, false, '', 0, []])->filter();`

12 . first() 返回通过测试集合的第一个元素:

$collection = collect([1, 2, 3, 4])->first(function ($key, $value) {
            return $value > 2;
        });

13 .

  
    展开阅读全文