Мои знания в PHP и MySQL не так глубоки.
У меня есть таблица с pick_number (varchar, 4), поле.
Мне нужно 3 вещи:
1) Объедините 4 числа и сгенерируйте все возможные комбинации (будет 24, если все числа
разные) Числа должны иметь по 4 цифры, например: 1234, 2341 и т. д. …. Уменьшает количество комбинаций, если одно число совпадает с другим, например 1123.
Здесь я подумал выделить цифры:
$pick_number=GetRow("SELECT pick_number from table");
$n1=substr($pick_number, 0, 1);
$n2=substr($pick_number, 1, 1);
$n3=substr($pick_number, 2, 1);
$n4=substr($pick_number, 3, 1);
2) Подсчитайте комбинации и сохраните в другом поле;
3) Сохраните комбинации в другом поле, так что я могу искать, если мне нужно (думаю, запятая разделена
должен сделать свое дело).
Спасибо!
Попробуй это.
function pc_permute($items, $perms = array( )) {
if (empty($items)) {
print join(' ', $perms) . "\n";
} else {
for ($i = count($items) - 1; $i >= 0; --$i) {
$newitems = $items;
$newperms = $perms;
list($foo) = array_splice($newitems, $i, 1);
array_unshift($newperms, $foo);
pc_permute($newitems, $newperms);
echo '<br>';
}
}
}
pc_permute(array(0,1,2,3));
Для объединения всех возможных комбинаций вы можете использовать эту функцию:
https://stackoverflow.com/a/19067884/4015178
Уменьшает количество комбинаций:
foreach($combinations as $key => $combination) {
foreach (count_chars($combination, 1) as $val) {
if($val > 1) {
unset($combinations[$key]);
break;
}
}
}
Подробнее о count_chars () — http://php.net/manual/en/function.count-chars.php