📜  laravel 集合总和 - PHP (1)

📅  最后修改于: 2023-12-03 15:17:17.003000             🧑  作者: Mango

Laravel 集合总和

Laravel 集合是在 PHP 原生数组的基础上进一步封装的数据结构。它提供了一系列强大的方法进行数据过滤、排序、分组、合并、映射和归约等操作,使得开发者能够更加高效地进行数据处理。

创建集合

可以使用 collect 函数来创建集合:

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

也可以使用 new Collection 来创建一个空集合:

$collection = new Collection;
集合方法

以下是 Laravel 集合提供的常用方法:

基本方法

| 方法 | 描述 | | --- | --- | | all | 返回集合所有元素 | | avg | 返回集合所有元素的平均值 | | count | 返回集合元素数量 | | first | 返回集合的第一个元素 | | last | 返回集合的最后一个元素 | | isEmpty | 判断集合是否为空 | | isNotEmpty | 判断集合是否不为空 | | toArray | 返回集合转换成的数组 | | toJson | 返回集合转换成的 JSON 字符串 |

过滤方法

| 方法 | 描述 | | --- | --- | | filter | 过滤集合元素,返回符合条件的元素 | | reject | 过滤集合元素,返回不符合条件的元素 | | where | 根据条件过滤集合元素 | | whereIn | 根据条件过滤集合元素,条件为数组 | | whereBetween | 根据条件过滤集合元素,条件为范围 | | whereNotBetween | 根据条件过滤集合元素,条件为不在范围内 |

排序方法

| 方法 | 描述 | | --- | --- | | sort | 对集合元素进行升序排序 | | sortBy | 根据指定键对集合进行升序排序 | | sortByDesc | 根据指定键对集合进行降序排序 | | reverse | 反转集合元素顺序 |

分组方法

| 方法 | 描述 | | --- | --- | | groupBy | 根据指定键对集合元素进行分组 | | keyBy | 将集合的值重新设置键 | | mapToGroups | 根据回调函数的返回值对集合元素进行分组 |

合并方法

| 方法 | 描述 | | --- | --- | | concat | 连接两个集合 | | merge | 合并两个集合 | | union | 对两个集合进行并集操作 |

映射方法

| 方法 | 描述 | | --- | --- | | map | 对集合元素进行映射 | | flatMap | 对集合元素进行映射,返回扁平化后的数组 | | pluck | 获取集合中指定键的值,返回值的集合 | | transform | 对集合元素进行修改 |

归约方法

| 方法 | 描述 | | --- | --- | | reduce | 将集合元素归约为单个值 | | each | 对集合元素进行迭代 | | tap | 使用回调函数调用集合实例,返回调用的集合实例 |

以上仅是 Laravel 集合提供的部分方法,更多方法可以查看官方文档。

使用示例

下面是一些使用 Laravel 集合的示例:

// 过滤集合中的奇数元素
$collection = collect([1, 2, 3, 4, 5]);
$evenNumbers = $collection->filter(function ($value) {
    return $value % 2 == 0;
});

// 按指定键对集合进行排序
$collection = collect([
    ['name' => 'John', 'age' => 30],
    ['name' => 'Jane', 'age' => 25],
    ['name' => 'Alex', 'age' => 35],
]);
$sorted = $collection->sortBy('age');

// 获取集合中指定键的值
$collection = collect([
    ['name' => 'John', 'age' => 30],
    ['name' => 'Jane', 'age' => 25],
    ['name' => 'Alex', 'age' => 35],
]);
$names = $collection->pluck('name');

// 对集合元素进行迭代
$collection = collect([1, 2, 3, 4, 5]);
$collection->each(function ($value) {
    echo $value;
});

// 将集合元素归约为单个值
$collection = collect([1, 2, 3, 4, 5]);
$total = $collection->reduce(function ($carry, $value) {
    return $carry + $value;
}, 0);
参考资料