Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Массивы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Функции с массивами
Insider
Отправлено: 07 Января, 2016 - 14:22:06
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




Есть ли функция в php, чтобы многомерный массив сделать одномерным чтобы все элементы расставились подряд. Если такой ф-ии нет, то можете мне подсказать как такое можно осуществить?
 
 Top
OrmaJever Модератор
Отправлено: 07 Января, 2016 - 15:34:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




PHP:
скопировать код в буфер обмена
  1. $a = [
  2.         'string',
  3.         ['substring1', 'substring2'],
  4.         123,
  5.         ['aa', 'bbb', ['312', 234]]
  6. ];
  7. function f( array $arr, array &$new_arr = [] )
  8. {
  9.         foreach( $arr as $v ) {
  10.                 if( is_array($v) ) {
  11.                         f($v, $new_arr);
  12.                 } else {
  13.                         $new_arr[] = $v;
  14.                 }
  15.         }
  16.         return $new_arr;
  17. }
  18.  
  19. var_dump(f($a));
  20.  

Ключи не учитываются т.к. в многомерных массивах они могут совпадать


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
re_nat
Отправлено: 07 Января, 2016 - 15:36:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 198
Дата рег-ции: Март 2012  


Помог: 5 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function normalize($arr) {
  3.     $result = [];
  4.        
  5.     foreach ($arr as $element) {
  6.         if (is_array($element)) {
  7.             $result = array_merge($result, normalize($element));
  8.         }
  9.         else {
  10.             $result[] = $element;
  11.         }
  12.     }
  13.        
  14.     return $result;
  15. }
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB