Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 11:48 26.04.24 
Клубове/ Компютри и Интернет / PHP Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема PHP - array - комбинции на елементите от масива
Автор divech (непознат )
Публикувано22.04.07 19:42  



Първо малко въведение:
Имам един масив, който е с размерност максимум 20 неповтарящи се елемента (числа). Трябва ми от този масив да извлеча всичките неповтарящи се комбинации от "n" на брой елементи, като 4 < n < 12. С две думи нещо като "тотото" само че не е 6 от 49, а е 4....12 от 20. Надявам се да ме разбрахте каква е идеята.
Използвам следният скрипт:

<?
$b1 = 55;
$b2 = 65;
$b3 = 75;
$b4 = 85;
$b5 = 95;
$b6 = 105;
$b7 = 120;
$b8 = 130;
$b9 = 140;
$b10 = 150;


function array_permutations($input, $num)
{
$perms = $indexed = $output = array();
$base = count($input);
$i = 0;
foreach($input as $in)
$indexed[$i++] = $in;
foreach(range(0, pow($base, $num) - 1) as $i)
$perms[] = sprintf("%'0{$num}d", base_convert($i, 10, $base));
foreach(array_filter($perms, 'catch_duplicate_chars') as $perm)

{
$temp = array();
foreach(str_split($perm) as $digit)
$temp[] = $indexed[$digit];
$output[] = $temp;
}
return $output;
}
function catch_duplicate_chars($val)
{
$arr = str_split($val);
return $arr == array_unique($arr);
}

function array_combinations($input, $num)
{
$combos = array();
foreach(array_permutations($input, $num) as $row)
{
$copy = $row;
sort($copy);
$combos[implode(',', $row)] = implode(',', $copy);
}
return array_keys( array_unique($combos) );
}
$array_combinations = array_combinations(array($b1 , $b2 , $b3 , $b4 , $b5 , $b6 , $b7 , $b8 , $b9 , $b10), 5);
$display = '';
foreach($array_combinations as $row)
$display .= "$row\n";
print "<pre>$display</pre>";
?>

По горното работи, но за съжаление не точно както бих искал. До 10 елемента в масива, и до комбинация от 6 елемента, т.е. до 6 от 10 всичко е както трябва, но при въвеждането на повече от 10 елемента в масива и при комбинации до 6 елемента извежда само комбинациите на първите 10 елемента а тези след 10-я неучастват. А ако се зададе да изведе комбинациите на повече от 6 елемента изобщо несработва.

Някой може ли да ми помогне по какъвто и да е начин. Почерпката е гарантирана.
Благодаря предварително.



Цялата тема
ТемаАвторПубликувано
* PHP - array - комбинции на елементите от масива divech   22.04.07 19:42
. * Re: PHP - array - комбинции на елементите от масива Bълk   23.04.07 03:40
. * Re: PHP - array - комбинции на елементите от масива divech   23.04.07 15:03
. * Re: PHP - array - комбинции на елементите от масива Bълk   25.04.07 02:44
. * Re: PHP - array - комбинции на елементите от масив croesus   27.04.07 17:40
. * Re: PHP - array - комбинции на елементите от масив divech   07.05.07 20:08
. * Re: PHP - array - комбинции на елементите от масива Bълk   08.05.07 02:18
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.