结合单个字符串php mysql

时间:2014-09-20 11:18:13

标签: php mysql string combinations

我对PHP和MySQL的了解不是很深入。 我有一个带pick_number(varchar,4)的表,字段。 我需要3件事:

1)组合4个数字并生成所有可能的组合(如果所有数字都是24,则为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 个答案:

答案 0 :(得分:0)

试试这个。

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

答案 1 :(得分: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