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]   

> Без описания
imediasun
Отправлено: 21 Декабря, 2013 - 15:22:01
Post Id


Частый посетитель


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


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

[+][+][+][+][+]


Есть массив
PHP:
скопировать код в буфер обмена
  1.  
  2. Array ( [0] => Array ( [adress] => street
  3.             [0] => Array ( [start_date] => 2013-01-01
  4.              [end_date] => 2013-03-30
  5.               [price] => 2000 )
  6.             [1] => Array ( [start_date] => 2013-06-01
  7.              [end_date] => 2013-09-30
  8.               [price] => 1000 ) )
  9.              [1] => Array ( [adress] => street2
  10.               [0] => Array ( [start_date] => 2013-10-01
  11.                [end_date] => 2013-11-30
  12.                 [price] => 2002 )
  13.                [1] => Array ( [start_date] => 2013-12-01
  14.                [end_date] => 2014-01-30
  15.                [price] => 1001 ) ) )
  16.  

Как его слить в одномерный массив такой
PHP:
скопировать код в буфер обмена
  1.  
  2. Array ( [adress] => street  [start_date] => 2013-01-01 [end_date] => 2013-03-30 [price] => 2000 [start_date] => 2013-06-01 [end_date] => 2013-09-30 [price] => 1000  [adress] => street2  [start_date] => 2013-10-01 [end_date] => 2013-11-30 [price] => 2002  [start_date] => 2013-12-01 [end_date] => 2014-01-30 [price] => 1001 )
  3.  
 
 Top
snikers987
Отправлено: 21 Декабря, 2013 - 15:29:31
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




У Вас в результирующем массиве дублируются ключи. Именно так, как Вы хотите, невозможно.

Возможно, Вам подойдет такой вариант:

PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($rgMultidimensional as $rgDimensional){
  3.     var_dump($rgDimensional);
  4. }
  5.  

(Отредактировано автором: 21 Декабря, 2013 - 15:29:56)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
imediasun
Отправлено: 21 Декабря, 2013 - 15:31:05
Post Id


Частый посетитель


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


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

[+][+][+][+][+]


а как из первого массива выбрать все значения с ключем 'start_dat' и составить отдельный массив из этих значений
 
 Top
IllusionMH
Отправлено: 21 Декабря, 2013 - 15:31:06
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




imediasun, с повторяющимися индексами? Никак
 
 Top
snikers987
Отправлено: 21 Декабря, 2013 - 15:32:42
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




imediasun пишет:
а как из первого массива выбрать все значения с ключем 'start_dat' и составить отдельный массив из этих значений


перебором и созданием нового массива

(Отредактировано автором: 21 Декабря, 2013 - 15:33:35)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
imediasun
Отправлено: 21 Декабря, 2013 - 15:44:00
Post Id


Частый посетитель


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


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

[+][+][+][+][+]


пробовал так но не получается
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($array as $key=>$value){
  3. $array2[]=$value['start_date'];
  4. }
  5.  

этот массив какой то составной
Undefined index: start_date

(Отредактировано автором: 21 Декабря, 2013 - 16:09:45)

 
 Top
IllusionMH
Отправлено: 21 Декабря, 2013 - 16:57:01
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




imediasun, учитесь дебажить свой код сами.
var_dump($key, $value)
в начале цикла и следите когда вылезает ошибка.
 
 Top
anakoman
Отправлено: 21 Декабря, 2013 - 19:12:47
Post Id


Гость


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


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




А не пробовали так?

PHP:
скопировать код в буфер обмена
  1. $y=count($array[0]);
  2. for ($i=0; $i<=$y; $i++) {
  3.     foreach ($array[0][$i] as $key => $value){
  4. }
  5.  


-----
Иногда, пока не спросишь - сам не поймешь
 
 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