Я попытался написать собственный итератор массива с фабричным классом PHP. Моя проблема: Мне нужна все буи всех ДАННЫЕ, например, вот простой PHP массив:PHP RecursiveArrayIterator класс get key-value pair recursive
Array
(
[authentication] => Array
(
[basic] => Array
(
[username] => guest
[password] => guest
)
[filters] => Array
(
[price] => 100
[owener] => me
)
)
)
я вижу на странице дока PHP, я могу использовать два простые класс и перебирать с простым Еогеаспом:
$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
Как изменить мой код, что может сделать следующий пример вывода со всеми DATAS:
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
Спасибо!
Большое спасибо sevavieti, отлично работает! :) – Gabor
@ Габор, пожалуйста. Итераторы действительно плохо документированы, и это трудно понять. – sevavietl