Blog. Just Blog

Преобразование многомерного массива в одномерный на PHP

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Web-мастеру и не только | Автор: ManHunter
Как гласит японская мудрость: "Даже если меч понадобится один раз в жизни, носить его нужно всегда". Следующий трюк как раз из этой серии. А именно, преобразование многомерного массива в одномерный.

Делается все при помощи стандартного класса RecursiveIteratorIterator, который берет на себя извлечение данных из многомерного массива, и функции iterator_to_array, которая преобразует эти данные в одномерный массив. Код будет выглядеть следующим образом:
  1. // Исходный многомерный массив
  2. $multi_array=array(
  3.     array('first',1,2,3),
  4.         'A'=>array(
  5.             'ZYXEL'=>array('banana','apple',7,'gnome'),
  6.             7=>array('a','b','c'),
  7.             'ROBOTIX'=>array('2400','3200','8000'),
  8.         ),
  9.     'INTEL' => array(
  10.         0=>array(8,'AMD'),
  11.         1=>array(
  12.             'groups' => array(
  13.                 array('metallica','accept','kiss'),
  14.                 'kurt'
  15.             )
  16.         )
  17.     )
  18. );
  19.  
  20. $iterator=new RecursiveIteratorIterator(new RecursiveArrayIterator($multi_array));
  21. $one_array=iterator_to_array($iteratorfalse);
  22. print_r($one_array);
На входе многомерный массив с совершенно разнобойными элементами и ключами. На выходе получаем одномерный массив, включающий в себя все элементы многомерного массива.

Array
(
    [0] => first
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => banana
    [5] => apple
    [6] => 7
    [7] => gnome
    [8] => a
    [9] => b
    [10] => c
    [11] => 2400
    [12] => 3200
    [13] => 8000
    [14] => 8
    [15] => AMD
    [16] => metallica
    [17] => accept
    [18] => kiss
    [19] => kurt
)

На моей многолетней практике такая задача возникала всего один раз. Если вам когда-нибудь пригодится мое решение, то буду только рад.

Поделиться ссылкой ВКонтакте
Просмотров: 1176 | Комментариев: 0

Метки: PHP
Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
Комментариeв нет

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 2 (0.009 сек.) / Память: 4.5 Mb
Наверх