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]   

> Без описания
Алтенрион
Отправлено: 26 Октября, 2013 - 16:27:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Сент. 2012  
Откуда: Москва, Россия


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




Стоит задача, реализовать вывод данных из массива , сортируя их рандомно , но что бы определенный ключ не шел никогда подряд.

Имеется многомерный массив. Примерно такой:

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.   0=>
  4.       0=>
  5.           0=>'key1'
  6.           1=>''
  7.       1=>
  8.           0=>'key1'
  9.           1=>''
  10.       2=>
  11.           0=>'key1'
  12.           1=>''
  13.   1=>
  14.       0=>
  15.           0=>'key2'
  16.           1=>''
  17.       1=>
  18.           0=>'key2'
  19.           1=>''
  20.       2=>
  21.           0=>'key2'
  22.           1=>''
  23.   2=>
  24.       0=>
  25.           0=>'key33'
  26.           1=>''
  27.       1=>
  28.           0=>'key33'
  29.           1=>''
  30.       2=>
  31.           0=>'key33'
  32.           1=>''
  33.   3=>
  34.       0=>
  35.           0=>'key5'
  36.           1=>''
  37.       1=>
  38.           0=>'key5'
  39.           1=>''
  40.       2=>
  41.           0=>'key5'
  42.           1=>''
  43.       3=>
  44.           0=>'key5'
  45.           1=>''
  46.       4=>
  47.           0=>'key5'
  48.           1=>''
  49.      
  50.  
  51.  


необходимо собрать все в список (одномерный массив) , чтобы ключи "key" никогда не повторились подряд (если конечно общее число четное)
Пытаюсь написать с перебором массива foreach($array as $arr), и присвоения первого элемента через $arg[] = array_shift($arr); ... но присваевает лишь единожды.

Как сделать правильный While и точку выхода ?

Подскажите, как это правильнее делать?
 
 Top
deblogger
Отправлено: 01 Ноября, 2013 - 08:19:57
Post Id


Новичок


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


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

[+]


Какой уровень участвует?

shuffle не удовлетворяет?
 
 Top
EuGen Администратор
Отправлено: 01 Ноября, 2013 - 08:42:29
Post Id


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


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


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




Вы говорите не о ключах, а о значениях. Кроме того, зачем нужны пустые значения? (они есть в каждом элементе 2-го уровня). Если они не нужны, то зачем нужна вложенность 3-го уровня, не будет ли достаточно 2-й? Если всё же пустые значения по какой-то причине нужны, как они должны быть обработаны?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
deblogger
Отправлено: 01 Ноября, 2013 - 09:00:36
Post Id


Новичок


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


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

[+]


Обычное дело.

Теоретически надо собрать столько уникальных массивов, сколько получится и затем выдавать из каждого по 1 штуке в тик.
 
 Top
Алтенрион
Отправлено: 23 Декабря, 2013 - 23:19:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Сент. 2012  
Откуда: Москва, Россия


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




проблема была решена. Полный алгоритм получился интересным. Могу выложить код с описанием сюда, если кому будет интересно)
 
 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