PHP.SU

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

Страниц (13): [1] 2 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 182
Алтенрион Отправлено: 24 Декабря, 2013 - 08:09:04 • Тема: Помогите перетасовать динамический массив. • Форум: Напишите за меня, пожалуйста

Ответов: 16
Просмотров: 229
Ближайшее время запилю свой микро хостинг гденить на clodo наверн, выложу туда приложение, сюда отпишу ссылочку))

Можно будет увидеть что и для чего)
Алтенрион Отправлено: 23 Декабря, 2013 - 23:19:26 • Тема: Рандомная парная выборка в методе • Форум: Объектно-ориентированное программирование

Ответов: 4
Просмотров: 1359
проблема была решена. Полный алгоритм получился интересным. Могу выложить код с описанием сюда, если кому будет интересно)
Алтенрион Отправлено: 30 Октября, 2013 - 04:14:29 • Тема: Помогите перетасовать динамический массив. • Форум: Напишите за меня, пожалуйста

Ответов: 16
Просмотров: 229
Буду тестировать пока этот. Конечно заметил , что постоянство индексов имеется, но эт группы, но участники ведь "случайные". Тут главное именно это. Не повторение индекса группы, и какой то уровень случайности выбора фамилии.
Алтенрион Отправлено: 29 Октября, 2013 - 13:16:03 • Тема: Помогите перетасовать динамический массив. • Форум: Напишите за меня, пожалуйста

Ответов: 16
Просмотров: 229
Блпагодарю! Огромное спасибо за реализацию алгоритма!)) Вы сделали ощутимый вклад в автоматизацию отечественного детского спорта)
Алтенрион Отправлено: 29 Октября, 2013 - 00:33:19 • Тема: Помогите перетасовать динамический массив. • Форум: Напишите за меня, пожалуйста

Ответов: 16
Просмотров: 229
Протестирую утром, отпишу результаты.
Алтенрион Отправлено: 28 Октября, 2013 - 14:07:32 • Тема: Помогите перетасовать динамический массив. • Форум: Напишите за меня, пожалуйста

Ответов: 16
Просмотров: 229
как раз из-за специфичной сложности, я и перешел от полного рандома, к последовательному вычленению первых элементов каждой группы, перераспределению ключей внутри групп, и повтору итерации. но не понимаю как работать с массивом в котором я делал array_shift, после первой итерации. либо он берет исходный, либо я ухожу в безконечный цикл...(
(Добавление)
Повторюсь, вполне допускаю возможность работы не с массивом групп пользователей, а с массивом пользователей у которых есть индекс группы :

PHP:
скопировать код в буфер обмена
  1.  
  2.  0 =>
  3.       0 => '1'
  4.       1 => 'Артем'
  5.   1 =>
  6.       0 => '1'
  7.       1 => 'Игорь'
  8.   2 =>
  9.       0 => '1'
  10.       1 => 'Максим Спесивцев'
  11.   3 =>
  12.       0 => '2'
  13.       1 => 'Антон'
  14.   4 =>
  15.       0 => '2'
  16.       1 => 'Графчиков'
  17.   5 =>
  18.       0 => '3'
  19.       1 => 'Абра кадабра'
  20.  
  21.  


Не знаю как это может облегчить задачу перебора массива и выведение алгоритма. Я пробовал такой массив разбивать через array_chunk($array, 2) и затем проверять равенство индексов групп, и если не равны, то делать

где $list - массив в который собирал нормальные пары, а $array[0]- элемент с парой после разделения по 2,

но не получилось создать адекватный цикл для проверки, не хватило знаний по работе с массивами видимо. Не понимаю видимо полностью как работают unset и array_shift...

Может работая с таким общим массивом попроще будет?
Алтенрион Отправлено: 28 Октября, 2013 - 13:32:37 • Тема: Помогите перетасовать динамический массив. • Форум: Напишите за меня, пожалуйста

Ответов: 16
Просмотров: 229
в том и проблема( если бы группы было точно 2, можно было бы просто сделать два массива и поочереди совместить их элементы.
сложность как раз в необходимости работы с несколькими группами. есть вероятность что групп будет блльше чем их участников. скажем около 7 групп, по 3 участника в каждой
Алтенрион Отправлено: 28 Октября, 2013 - 12:51:51 • Тема: Помогите перетасовать динамический массив. • Форум: Напишите за меня, пожалуйста

Ответов: 16
Просмотров: 229
групп может быть больше 2... , как можно учесть динамическое получение колва групп в данном переборе?
наверн метод count($m)
Алтенрион Отправлено: 28 Октября, 2013 - 11:41:32 • Тема: Помогите перетасовать динамический массив. • Форум: Напишите за меня, пожалуйста

Ответов: 16
Просмотров: 229
я допускаю что я ошибаюсь в подходе сортировки.
главная цель - из общего списка пользователей, сгруппировать пары из пользователй разных групп случайным образом.
пользователей будет примерно поровну, может быть нечетное кл-во(т.е. 1 может остаться без пары (последний) ).
рандомизацию делал сортируя пользоватей внутри групп методом shuffle() .
дошел до прямого перебора так как не смог реализовать дейсвительно случайную парную группмровку.
можете подсказаль алгоритм ?
Алтенрион Отправлено: 28 Октября, 2013 - 11:19:41 • Тема: Помогите перетасовать динамический массив. • Форум: Напишите за меня, пожалуйста

Ответов: 16
Просмотров: 229
В каждом массиве групп, может быть разное количество пользователей, можете привести пример ?

Я пришел к выводу что необходимо переносить первого пользователя группы в новый массив, и удалять его из родительского, и переиндексировать массив родитель, но не получается реализовать все в 1 цикл...
Алтенрион Отправлено: 28 Октября, 2013 - 10:08:47 • Тема: Помогите перетасовать динамический массив. • Форум: Напишите за меня, пожалуйста

Ответов: 16
Просмотров: 229
Задача :
Пользователь вводит n записей в базу. После запроса формируется многомерный массив типа :
PHP:
скопировать код в буфер обмена
  1.  
  2. 0=>
  3.         [0=>[
  4.                 0=>'1',
  5.                 1=>'one1' ],
  6.         1=>[
  7.                 0=>'1',
  8.                 1=>'two1' ],
  9.         2=>[
  10.                 0=>'1',
  11.                 1=>'three1' ]
  12.         ],
  13. 1=>
  14.         [0=>[
  15.                 0=>'2',
  16.                 1=>'one2' ],
  17.         1=>[
  18.                 0=>'2',
  19.                 1=>'two2' ],
  20.         2=>[
  21.                 0=>'2',
  22.                 1=>'three2' ]
  23.         ],
  24. ...
  25. )
  26.  
  27.  


Первый уровень массивов - это группы( 0,1,...) , в каждой группе записаны пользователи ( 0,1,2).
У каждого пользователя два свойства: 0-это ключ группы, 1- это его имя.

Необходимо перебрать массив так, чтобы они выстроились без повторения двух индексов групп подряд, в 1 список(одномерный массив).


Получить одномерный массив не трудно :

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


Но как отсортировать пользователей, скажем что бы они шли в списке :


PHP:
скопировать код в буфер обмена
  1.  
  2.         0=>[
  3.                 0=>'1',
  4.                 1=>'one1' ],
  5.         1=>[
  6.                 0=>'2',
  7.                 1=>'one2' ],
  8.         2=>[
  9.                 0=>'1',
  10.                 1=>'two1' ],
  11.         3=>[
  12.                 0=>'2',
  13.                 1=>'two2' ]
  14.        
  15. ......
  16. ]
  17.  


Подскажите ! Уже перебробовал и делать array_chunk($array,2) и сравнивать индексы в паре и переносить в другой массив, но не понял как сделать прерывание цикла, И пробовал просто пробегать по первым элементам массивов , и делать unset, или array_shift первым элементам после переноса их в новый массив-список, но не получается...
Алтенрион Отправлено: 26 Октября, 2013 - 16:27:26 • Тема: Рандомная парная выборка в методе • Форум: Объектно-ориентированное программирование

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

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

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 и точку выхода ?

Подскажите, как это правильнее делать?
Алтенрион Отправлено: 13 Августа, 2013 - 11:33:18 • Тема: Проблема с отслеживанием ошибок сокетов(возможно кодирока) • Форум: Работа с сетью

Ответов: 2
Просмотров: 1328
благодарю. Никак не мог определиться с переводом кодировок. с помощью iconv из cp1251 в utf-8 проблема решена. Спасибо)
Алтенрион Отправлено: 13 Августа, 2013 - 10:55:02 • Тема: Проблема с отслеживанием ошибок сокетов(возможно кодирока) • Форум: Работа с сетью

Ответов: 2
Просмотров: 1328
Выввожу информацию об ошибках сокетов... вот кусок кода для примера:

PHP:
скопировать код в буфер обмена
  1.  
  2. ...
  3.  
  4. if(socket_bind($sock, $adrdress,$port) === false ) {
  5.  
  6. echo "socket_bind() failed: reason :" . socket_strerror(socket_last_error($sock)). "\n" ;
  7.  
  8. break;
  9. }
  10.  
  11. ...
  12.  


То что выводится на картинке ниже. Почему такое и как исправить?
Алтенрион Отправлено: 20 Июня, 2013 - 10:01:05 • Тема: Как добавить в таблицу базы Время добавления данных? • Форум: Работа с СУБД

Ответов: 10
Просмотров: 2912
И снова заглянул за полезными ответами)))) Мир всем вам )))

Страниц (13): [1] 2 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB