一个友好、简单、懒惰且模块化的集合类。
[![试试吧!][phpsandbox 图片]][phpsandbox 链接] [![最新稳定版][最新稳定版]][包管理器链接] [![GitHub 星星][GitHub 星星]][包管理器链接] [![总下载量][总下载量]][包管理器链接] [![GitHub 工作流状态][GitHub 工作流状态]][GitHub Actions 链接] [![Scrutinizer 代码质量][code quality]][scrutinizer link] [![类型覆盖率][type coverage]][牧羊人链接] [![代码覆盖率][code coverage]][scrutinizer link] [![突变测试徽章][mutation badge url]][mutation badge link] [![许可证][license]][包管理器链接] [![捐赠!][donate GitHub]][GitHub 赞助商链接]
Collection 是一个适用于 PHP 7.4 及更高版本(包括 PHP 8.0)的功能性实用程序库。它与基于常规 PHP 数组的 [其他集合库][7] 类似,但其底层采用了懒加载机制,力求尽可能少地执行工作,同时尽可能灵活。像 [array_map()][8], [array_filter()][9] 和 [array_reduce()][10] 这样的函数非常好用,但它们会创建新的数组,并且所有操作都会在进入下一步之前立即执行。懒加载集合利用 PHP 的生成器、迭代器和 yield 语句,允许您处理非常大的数据集,同时保持内存使用尽可能低。
例如,假设您的应用程序需要处理一个多 GB 的日志文件,同时利用此库的方法来解析文件。与将整个文件一次性读取并存储到内存相比,此库可用于在特定时刻仅保留文件的一小部分在内存中。此外,此库还具有以下特点:
此外,与普通的 PHP 数组不同,其中的键必须是 int 或 string 类型,而此集合库允许您使用任何类型的键: integer, string, object, array…任何类型! 此库可以作为 [\SplObjArray] 的有效替代。
暂无开放 Issues,或尚未同步最近议题。