ishworkh / multi-level-array-iterator
提供了一种遍历任意深度的嵌套数组的方法
v2.0.0
2017-02-18 09:20 UTC
Requires
- php: >=7.0
This package is not auto-updated.
Last update: 2024-09-23 15:19:12 UTC
README
有时候需要遍历一个包含未知嵌套层级的数组。多级数组迭代器允许您做到这一点。此功能支持关联数组,并且经过适当的测试。
基本用法
$array = [ 1, 2, [ 3, 4 ], [ 5, 6, [ 7, 8 ] ], [ 9, [ [ 10 ] ], 11 ] ]; foreach(\ArrayIterator\ArrayIteratorFacade::iterate($array) as $key => $ArrayItem) { echo $key . ' - ' . $ArrayItem->getValue() . "\n"; } Result: 0 - 1 1 - 2 0 - 3 1 - 4 0 - 5 1 - 6 0 - 7 1 - 8 0 - 9 0 - 10 2 - 11
\ArrayIterator\ArrayIteratorFacade::iterate($array)
返回一个 ArrayElementInterface
的生成器。
ArrayElementInterface
提供
- getValue():mixed
- getKeyHierarchy():KeyHierarchyInterface
- getParentKey(int $parentLevel): string
- getHierarchyLevel(): int
可以使用 \ArrayIterator\ArrayIteratorFactory
创建新的 \ArrayIterator\Iterator\ArrayIterator
实例,该工厂可通过 \ArrayIterator\ArrayIteratorLocator
访问。可以使用外观或定位器方式来获取 ArrayIterator 的实例。
它包括对 Laravel 框架的特殊支持。为了与 Laravel 的依赖注入容器集成,提供了 \ArrayIterator\ArrayIteratorServiceProvider
,可以将其包含在 config/app.php
中的服务提供者列表中。之后,在 Laravel 应用程序内部任何地方对 \ArrayIterator\ArrayIteratorFactory
的类型提示都将解析为正确的 \ArrayIterator\ArrayIteratorFactory
。
注意:- 为了调试目的,输出 KeyHierarchyInterface
将打印从根数组开始的键层次结构的字符串表示,键之间用 '-' 分隔。- 升级到 php7