Как стать автором
Обновить

Рекурсивный обход массива

Время на прочтение1 мин
Количество просмотров19K
Автор оригинала: Nicolas Rajabaly & Antoine Ughetto
Наткнулся в интернете на интересный пост, описывающий использование SPL
Текст маленький, но уж сильно понравилась реализация.
Далее перевод (если его можно так назвать) + немного отсебятины

Когда у нас в программе появляется многоуровневый массив, то для того чтобы эффективно его обработать необходимо написать кучу рекурсивных функций или писать огромное количество циклов foreach, while или for (как кто привык)

Самый простой метод получения пар (ключ, значение) для таких массивов это использование возможностей библиотеки SPL, а именно итераторов RecursiveArrayIterator и RecursiveIteratorIterator

$array_multi = array(
    «myKey» => «myValue»,
    «myKey2»=> array(
        «myKey2Array» => «value2Array»,
        «myKey3Array» => «value3Array»,
        «myKey4Array» => «value4Array»,
        «myKey5Array» => array(«test», «tata», «france»)));
$array_iterator = new RecursiveIteratorIterator(
    new RecursiveArrayIterator($array_multi));
foreach($array_iterator as $key=>$value)
    echo $key.' — '.$value."\n";


Вывод этого коротенького примера следующий:
myKey — myValue
myKey2Array — value2Array
myKey3Array — value3Array
myKey4Array — value4Array
0 — test
1 — tata
2 — france
Теги:
Хабы:
Всего голосов 14: ↑7 и ↓70
Комментарии37

Публикации

Истории

Работа

PHP программист
71 вакансия

Ближайшие события

25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область