php-kit / flow
PHP 的迭代器天堂
This package is auto-updated.
Last update: 2024-09-11 15:18:59 UTC
README
PHP 的迭代器天堂
运行时要求
- PHP >= 5.4
介绍
Flow 提供了一个流畅的接口来组装迭代器链和其他数据处理操作。
流畅的 API 使其 非常容易和直观 使用本机 SPL 迭代器(以及该库提供的一些自定义迭代器)和表达式的语法允许您以优雅、简洁和可读的方式组装复杂的处理管道。
使用此构建器组装的迭代器链可以对数据流执行多次转换,而无需在内存中存储中间步骤的结果。当操作大型数据集时,这种机制可以在内存消耗上非常轻量。
链的输入可以是任何类型的 可迭代对象。可迭代对象是可以转换为迭代器的东西。它们可以是原生数组、可遍历的(实现原生 Iterator
或 IteratorAggregate
接口的类)、调用生成器函数(PHP>=5.5)或甚至调用者(例如闭包)。
Flow 允许您使用
FunctionIterator
类在 PHP<5.5 上使用常用函数编写生成器函数。
Flow 构建器
待办事项:在此处提供示例。
迭代器
Flow 还提供了一组有用的迭代器库,它补充和扩展了标准 PHP 库(SPL)提供的基本集合。
这些是迭代器:
CachedIterator
记忆化另一个迭代器的值,以便后续迭代不需要再次迭代它。
ConditionalIterator
迭代另一个迭代器,直到迭代完成或给定的回调返回 false
(两者先发生者为准)。
FlipIterator
迭代给定的迭代器,交换键和值或反之亦然。
FunctionIterator
通过重复调用函数或类方法来迭代生成的值。
LoopIterator
允许在另一迭代器上循环,有一些约束。
UnfoldIterator
替换并扩展另一个迭代器的每个迭代值。
MapIterator
使用回调函数转换另一个迭代器中的数据。
RangeIterator
遍历生成的数字序列。
RecursiveIterator
一个通用递归迭代器,它通过用户定义的回调函数定义递归。
ReduceIterator
将函数应用于累加器和给定迭代器的每个值,以将迭代数据减少到单个值。
ReindexIterator
迭代另一个迭代器,用生成的数字序列替换键。
SingleValueIterator
提供单个常量值的迭代。
注意
某些操作需要在操作应用之前将迭代数据“具体化”,即完全迭代并存储为内部数组,例如:
reverse()
或sort()
。对于需要所有数据都存在的操作,结果数据将自动转换为迭代器。
许可证
此库是开源软件,根据 MIT 许可证 许可。
Flow - 版权所有 © 2015 Impactwave, Lda。