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]   

> Без описания
moderated.weblink.20130603
Отправлено: 13 Февраля, 2012 - 12:43:37
Post Id


Новичок


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


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




Добрый день!
Проблема следующая - необходимо слить два массива в цикле по 50-300(в зависимости от настройки) строк за цикл, количество циклов завит от исходного обрабатываемого массива (~ 40000 строк).

Сливаю их по средствам:

$split_arr = array_merge($split_arr,$arr_data);

но процесс получается необычайно долгим. Помогите это исправить.
 
 Top
Viper
Отправлено: 13 Февраля, 2012 - 13:05:46
Post Id



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


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




обратите внимание на пост http://www.php.net/manual/en/fun...-merge.php#98386

PS! Медленно потому что функция создает копию массива при слиянии.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
moderated.weblink.20130603
Отправлено: 13 Февраля, 2012 - 13:33:35
Post Id


Новичок


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


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




Спасибо за ответ, но в хелпе ковыряться времени нет. Если есть альтернатива слияния массива готов ее получить. Очень не хочется сливать через foreach.
 
 Top
PATCH
Отправлено: 13 Февраля, 2012 - 13:38:57
Post Id



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


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


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




вам же кинули ссылку на функцию, там разобратся 5 минутное дело.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $beginning = 'foo';
  3. $end = array(1 => 'bar');
  4. $result = array_merge((array)$beginning, (array)$end);
  5. print_r($result);
  6. ?>

http://php.su/functions/?array-merge
 
 Top
snikers987
Отправлено: 13 Февраля, 2012 - 13:41:25
Post Id



Участник


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


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




http://habrahabr[dot]ru/tag/array_merge/
?
(Добавление)
PATCH а теперь читаем первый пост))


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
PATCH
Отправлено: 13 Февраля, 2012 - 13:46:27
Post Id



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


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


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




я чет сегодня морожу во всех темах) вот что значит поспать 4 часа) интересно как автор хочет слить без foreach и без array_merge. через цикл while чели) проще через foreach , не ошибешся с условием)
snikers987 пишет:
http://habrahabr[dot]ru/tag/array_merge/
?
(Добавление)
PATCH а теперь читаем первый пост))
хм клацаю на твою ссылку кидает в главный раздел форума)) хотя ссылка с переходом вроде верная)

(Отредактировано автором: 13 Февраля, 2012 - 13:49:04)

 
 Top
moderated.weblink.20130603
Отправлено: 13 Февраля, 2012 - 14:07:25
Post Id


Новичок


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


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




ВОТ КАК-ТО ТАК!!!


PHP:
скопировать код в буфер обмена
  1.  
  2.                         foreach ($arr_data as $data)
  3.               {
  4.                             $split_arr[] = $data;
  5.                          
  6.                           }


0.055054903030396

PHP:
скопировать код в буфер обмена
  1.  
  2.              for ($i=0; $i < $max; )
  3.                          {
  4.              $split_arr[] = $arr_data[$i];
  5.               $i++;                      
  6.              }


0.060477018356323

PHP:
скопировать код в буфер обмена
  1.  
  2. $split_arr = array_merge ($split_arr, $arr_data);
  3.  


9.4936280250549


Всем спасибо за ответы. Если другой альтернативы нет, буду использовать foreach!

(Отредактировано автором: 13 Февраля, 2012 - 14:41:53)

 
 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