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 :: Обьединение нескольких массивов в 3

 PHP.SU

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


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

> Без описания
vlom
Отправлено: 20 Декабря, 2012 - 12:03:53
Post Id



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


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


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




Всем привет.
Есть скажем 10+ массивов с разным количеством элементов в каждом
Надо их распределить объеденить в три, таким образом чтобы в каждом было примерно одинаковое значение элементов
Для примера рассмотрим такую ситуацию.
Есть пять массивов
PHP:
скопировать код в буфер обмена
  1. $rgTmp_1 = array(1,2);
  2. $rgTmp_2 = array(1,2,3,4,5);
  3. $rgTmp_3 = array(1,2);
  4. $rgTmp_4 = array(1,2);
  5. $rgTmp_5 = array(1,2);
  6. $rg_1 = array_merge($rgTmp_1, $rgTmp_3);
  7. $rg_2 = array_merge($rgTmp_2);
  8. $rg_3 = array_merge($rgTmp_4, $rgTmp_5);

Примерно надо так.
Но как я уже говорил будет разное количество массивов.
 
 Top
ams
Отправлено: 20 Декабря, 2012 - 12:15:17
Post Id



Посетитель


Покинул форум
Сообщений всего: 351
Дата рег-ции: Нояб. 2010  


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




Сначало http://php.net/manual/ru/function.array-merge.php, а потом http://php.net/manual/ru/functio....array-slice.php
 
 Top
vlom
Отправлено: 20 Декабря, 2012 - 12:37:07
Post Id



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


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


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




ams пишет:
Сначало http://php.net/manual/ru/function.array-merge.php, а потом http://php.net/manual/ru/functio....array-slice.php

ух как все просто-то у вас))))
еще одно обязательно условие (сори, сам забыл указать), это что бы элементы исходного массива не оказались в разных массивах
 
 Top
EuGen Администратор
Отправлено: 20 Декабря, 2012 - 13:02:26
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




PHP:
скопировать код в буфер обмена
  1. function rehashData()
  2. {
  3.    $rgArgs = func_get_args();
  4.    if(!count($rgArgs))
  5.    {
  6.       return null;
  7.    }
  8.    $iCount = (int)array_shift($rgArgs);
  9.    if(!$iCount || $iCount<0)
  10.    {
  11.       return null;
  12.    }
  13.    $rgCount  = array_fill(0, $iCount, 0);
  14.    $rgResult = array_fill(0, $iCount, array());
  15.    array_map(function($rgData) use (&$rgCount, &$rgResult)
  16.    {
  17.       $iCurrentMin = array_search(min($rgCount), $rgCount);
  18.       $rgResult[$iCurrentMin] = array_merge($rgResult[$iCurrentMin], $rgData);
  19.       $rgCount[$iCurrentMin]+=count($rgData);
  20.    }, $rgArgs);
  21.    return $rgResult;
  22. }
  23.  
  24. $rgTmp_1 = array(1,2);
  25. $rgTmp_2 = array('a','b','c','d','e');
  26. $rgTmp_3 = array(3,4);
  27. $rgTmp_4 = array(6,7);
  28. $rgTmp_5 = array(8,9);
  29.  
  30. //var_dump(rehashData(3, $rgTmp_1, $rgTmp_2, $rgTmp_3, $rgTmp_4, $rgTmp_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