【发布时间】:2017-05-10 02:55:23
【问题描述】:
我尝试使用 PHP 的工厂类编写自定义数组迭代器。我的问题:我需要所有数组的所有数据,例如,这是一个简单的 PHP 数组:
Array
(
[authentication] => Array
(
[basic] => Array
(
[username] => guest
[password] => guest
)
[filters] => Array
(
[price] => 100
[owener] => me
)
)
)
我在 PHP 的文档页面上看到,我可以使用两个简单的类并使用简单的 foreach 进行迭代:
$iterator = new \RecursiveIteratorIterator(new \RecursiveArrayIterator($this->phpArray));
foreach($iterator as $key => $value) {
$d = $iterator->getDepth();
echo "depth: $d $key => $value\n";
}
这个程序抛出以下输出:
depth: 2 key: username, value: guest
depth: 2 key: password, value: guest
depth: 2 key: price, value: 100
depth: 2 key: owener, value: me
如何修改我的代码可以对所有数据执行以下示例输出:
depth: 0 key: authentication, value:
depth: 1 key: basic, value:
depth: 1 key: filters,
depth: 2 key: username, value: guest
depth: 2 key: password, value: guest
depth: 2 key: price, value: 100
depth: 2 key: owener, value: me
谢谢!
【问题讨论】: