美文网首页
7.集合、方法、函数

7.集合、方法、函数

作者: darren911 | 来源:发表于2019-12-10 23:48 被阅读0次

Illuminate\Support\Collection 类

1.提供了一个更具可读性和更便于处理数组数据的封装。

创建集合

如上所述, collect 辅助函数会为指定的数组返回一个新的 Illuminate\Support\Collection 实例。因此,我们可以这样轻松的创建一个集合:

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

Tip:通常,Eloquent 查询的结果返回的内容都是 Collection 实例。

扩展集合

集合都是「可宏扩展」(macroable) 的,它允许你在执行时将其它方法添加到 Collection 类。例如,通过下面的代码在 Collection 类中添加一个 toUpper 方法:

use Illuminate\Support\Str;
Collection::macro('toUpper', function () {
    return $this->map(function ($value) {
        return Str::upper($value);
    });
});
$collection = collect(['first', 'second']);
$upper = $collection->toUpper();

方法列表

  • 集合或惰性集合的方法几乎通用
    all() 展示底层数组
    countBy() 方法计算集合中每个值的出现次数。默认情况下,该方法计算每个元素的出现次数:
$collection = collect([1, 2, 2, 2, 3]);
$counted = $collection->countBy();
$counted->all();
// [1 => 1, 2 => 3, 3 => 1]
//但是,你也可以传递一个回调函数给 countBy 来计算自定义的值出现的次数:
$collection = collect(['alice@gmail.com', 'bob@yahoo.com', 'carlos@gmail.com']);
$counted = $collection->countBy(function ($email) {
    return substr(strrchr($email, "@"), 1);
});
$counted->all();
// ['gmail.com' => 2, 'yahoo.com' => 1]

懒集合

注意:在进一步学习 Laravel 的懒集合之前,我们先花点时间熟悉一下 PHP generators

为了补充已经很强大的 Collection 类, LazyCollection 类利用了 PHP 的 generators 来允许你在保持低内存使用率的同时使用非常大的数据集。

例如,假设你的应用需要处理一个千兆字节的日志文件,同时利用 Laravel 的集合方法来解析这个日志文件。与其一次将整个文件读入内存,不如使用懒集合在给定时间仅将文件的一小部分保留在内存中:

  • 创建懒集合
    要创建懒集合,应将 PHP 生成器函数传递给集合的 make 方法:
use Illuminate\Support\LazyCollection;
LazyCollection::make(function () {
    $handle = fopen('log.txt', 'r');

    while (($line = fgets($handle)) !== false) {
        yield $line;
    }
});

函数

相关文章

  • 7.集合、方法、函数

    Illuminate\Support\Collection 类 1.提供了一个更具可读性和更便于处理数组数据的封装...

  • 第16课:遍历字典

    预习: 方法items()、方法keys()、方法values()、函数sorted()、集合set()、 知识点...

  • JavaScript函数方法集合

    1.求平均值 2.把数组按照从大到小的顺序排列 3.数字千位分割 4.以今天为节点,显示前三周及后一周的日期 5....

  • 对象Object

    无序的数据集合(属性和方法的集合)就是对象(object) 创建方式 字面量 构造函数 工厂模式 构造函数模式 优...

  • JS中函数的调用方式总结

    1.普通函数 2.对象的方法 3.构造函数 4.绑定事件函数 5.定时器函数 6.立即执行函数 7.最后关于thi...

  • kotlin<第五篇>:集合

    一、创建集合 创建集合的最常用方法是使用标准库函数 listOf()、setOf()、mutableL...

  • NumPy基础之数组常用函数(二)

    集合函数 NumPy提供了一些针对一维数组的基本集合运算方法,具体如下表所示。 上表是数组的集合运算方法,其中以u...

  • python 高级进阶之找出多个字典中的公共键

    方法一:遍历 方法二:集合与运算 方法三:map、reduce、与运算 补充说明: map() map() 函数接...

  • 7.集合

    1.java中数据存储(内存中)的容器:①数组 ②集合 2.数组在数据存储方面的不足: ①数组一旦初始化,其长...

  • Swift 语法概览(二)

    7. 枚举 枚举是一组相同数据类型集合,Swift 中,枚举可以添加计算属性,实例方法,初始化方法等,类似 Cla...

网友评论

      本文标题:7.集合、方法、函数

      本文链接:https://www.haomeiwen.com/subject/dqmngctx.html