roukmoute/enumerable

提供了一组查询对象的函数。

dev-master / 1.0.x-dev 2018-07-17 21:52 UTC

This package is auto-updated.

Last update: 2024-09-27 05:31:50 UTC


README

提供了一组查询对象的函数。
Enumerable 是一个 PHP >= 7.1 的集合库,实现了大部分由 集合管道 对象方法提出的序列操作。

安装

使用 Composer 安装此包。

composer require roukmoute/enumerable

操作目录

以下是在集合管道中经常遇到的操作的目录

filter

在每个元素上运行一个布尔函数,并将通过测试的元素放入输出。

您可以使用此函数仅保留要处理的输入项。
例如

$query = (new \Enumerable\Enumerable([0, 30, 20, 15, 90, 85, 40, 75]))->filter(
    function ($number, $index) {
        return $number <= $index * 10;
    }
);

foreach ($query as $number) {
    echo $number . PHP_EOL;
}

/*
 This code produces the following output:

 0
 20
 15
 40
*/

concat

将集合连接到单个集合

$query = (new \Enumerable\Enumerable([1, 2, 3]))->concat([4, 5]);

foreach ($query as $name) {
    echo $name . PHP_EOL;
}

// This code produces the following output:
//
// 1
// 2
// 3
// 4
// 5

如果您想连接超过两个集合

$query = (new \Enumerable\Enumerable([1, 2, 3]))->concat([4, 5])->concat([6]);

foreach ($query as $name) {
    echo $name . PHP_EOL;
}

// This code produces the following output:
//
// 1
// 2
// 3
// 4
// 5
// 6

difference

从管道中删除提供的列表内容

$query = (new \Enumerable\Enumerable([1, 1, 2, 2, 3, 4]))->difference([1, 3]);

foreach ($query as $number) {
    echo $number . PHP_EOL;
}

// This code produces the following output:
//
// 2
// 2
// 4

distinct

删除重复元素

返回一个新列表,其中已删除任何重复项。

$query = (new \Enumerable\Enumerable([1, 2, 3, 2, 1]))->distinct();

foreach ($query as $number) {
    echo $number . PHP_EOL;
}

// This code produces the following output:
//
// 1
// 2
// 3

slice

返回给定第一个和最后一个位置之间的列表子序列。

如果您想获取列表的一部分,可以取列表的切片。

$query = (new \Enumerable\Enumerable([1, 2, 3, 4, 5, 6]))->slice(2, 4);

foreach ($query as $number) {
    echo $number . PHP_EOL;
}

/**
 * This code produces the following output:
 * 
 * 3
 * 4
 * 5
 */