doekenorg/iterator-functions

一个提供类似array_*函数的迭代器包。

v1.0.1 2021-08-29 09:24 UTC

This package is auto-updated.

Last update: 2024-09-24 19:09:00 UTC


README

Latest Version on Packagist Tests

doekenorg/iterator-functions 包提供了一系列类似 array_* 函数的迭代器功能。此包旨在鼓励开发者通过简化常见任务来更广泛地使用迭代器。

可用函数

所有可用函数都是根据它们的 array_* 相似函数建模的。但是,它们返回的不是 array,而是 Iterator 实例。这意味着您可以使用它们以相同的方式,同时获得额外的内存节省好处。

  • iterator_column(\Traversable $iterator, $column_key, $index_key = null): ColumnIterator
  • iterator_filter(Iterator $iterator, ?callable $callback = null): \CallbackFilterIterator
  • iterator_flip(Iterator $iterator): FlipIterator
  • iterator_keys(\Iterator $iterator): KeysIterator
  • iterator_map(callable $callback, iterable ...$iterators): MapIterator
  • iterator_reduce(\Iterator $iterator, callable $callback, $initial = null)
  • iterator_values(\Iterator $iterator): ValuesIterator
  • iterator_walk(\Iterator $iterator, callable $callback, ...$arguments): void

注意:没有提供 _diff 或 _intersect 函数,因为这些函数无法在不牺牲迭代器的内存优势的情况下实现。

可用迭代器

尽可能使用原生迭代器。任何缺少的迭代器都添加到这个包中。

  • ColumnIterator - 迭代数组/对象的单列迭代器。
  • FlipIterator - 翻转当前迭代的键和值的迭代器。
  • KeysIterator - 返回提供的迭代器的键的迭代器。
  • MapIterator - 应用回调到给定迭代器的元素上的迭代器。
  • ValuesIterator - 返回提供的迭代器的值的迭代器。

安装

您可以通过 composer 安装此包

composer require doekenorg/iterator-functions

变更日志

请参阅 CHANGELOG 了解最近的变化。

测试

./vendor/bin/pest

许可证

MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。