roukmoute / enumerable
提供了一组查询对象的函数。
dev-master / 1.0.x-dev
2018-07-17 21:52 UTC
Requires
- php: >=7.1
Requires (Dev)
- bossa/phpspec2-expect: ^3.0
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 */