[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Массив. Пошаговая выборка
cyberside
Есть массив:
$cars = array(1,2,3,4,5,6,7,8);


Необходимо составить 4 группы по 2 машины без повторений.

Пробовал так:
$Cars = count($cars);
for($i = 1; $i <= $Cars; ++$i)
{
A:
$index_1 = rand(0, $Cars - 1);
$index_2 = rand(0, $Cars - 1);

if($index_1 != $index_2)
{
if($cars[$index_1] and $cars[$index_2]){
echo '[' . $i . '] ' . $cars[$index_1] . ' <em>-vs-</em> ' . $cars[$index_2] . ' <br />';

unset($cars[$index_1]);
unset($cars[$index_2]);
}else{
goto A;
}
}
else{
goto A;
}
}


Бросает в вечный цикл... (> 30 сек)
P.S: Машин может быть и больше... Равноценно как и 9 или 11.



Спустя 6 минут, 42 секунды (18.09.2012 - 14:54) GET написал(а):
В php ввели goto! smile.gif)) с 5.3 прочитал, а я думал с 6 только появится.

if($index_1 != $index_2) не проверял но здесь if($index_1 !== $index_2)

Спустя 2 минуты, 45 секунд (18.09.2012 - 14:57) GET написал(а):
массив уменьшается

unset($cars[$index_1]);
unset($cars[$index_2]);

а его количество $Cars остается прежнем и заново не вычисляется

Спустя 29 секунд (18.09.2012 - 14:57) cyberside написал(а):
A.B.C.
Мне важно что бы числовых совпадений по ID не было, с этой строкой все в порядке.

Вопрос стоит в том что может есть какое либо другое решение для выбора и удаления ID из массива.

Спустя 2 минуты (18.09.2012 - 14:59) cyberside написал(а):
count считает кол-во элементов в массиве. Может быть удален 6 элемент массива, но все равно 7 остается седьмым.

Спустя 1 час, 29 минут, 49 секунд (18.09.2012 - 16:29) dron4ik написал(а):
$cars[$index_1] and $cars[$index_2] )))

Спустя 7 минут, 47 секунд (18.09.2012 - 16:37) killer8080 написал(а):
Цитата (cyberside @ 18.09.2012 - 14:47)
Необходимо составить 4 группы по 2 машины без повторений.

shuffle() array_chunk()

Спустя 1 час, 42 минуты, 20 секунд (18.09.2012 - 18:19) Guest написал(а):
killer8080, спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.