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

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

Время на прочтение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 программист
150 вакансий

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