Объединить одиночные строки PHP MySQL

Мои знания в 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) Сохраните комбинации в другом поле, так что я могу искать, если мне нужно (думаю, запятая разделена
должен сделать свое дело).

Спасибо!

2

Решение

Попробуй это.

 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));
0

Другие решения

Для объединения всех возможных комбинаций вы можете использовать эту функцию:

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

0

По вопросам рекламы [email protected]