2

我有面向数学的问题。在这里我想获得所有可能的组合并希望存储在数组中。

例如:-

1 digit = 10 (0,1,2,3,....9) 
2 digit = 100 (00,01,02,03,...)

我有公式来查找可能性的数量,即10^n -1。但我不知道如何获得这些值。

function get_combinations(5){
//10^5 -1 = 99999 values 

} 

函数结果应该是

00000,00001,00010,00100,....

在数组中

不喜欢

0,1,2,....00,01,03,...99999

编辑

我也喜欢把一些字母和数字混在一起

结果像

0000a,000a1,000z1,00001,00000,....

提前致谢

4

5 回答 5

4
$n = ???;
$array = range(0, pow(10, $n)-1);

是的,没有整数开头zero

所以,不必费心构造一个以leading 开头的数组zero
当你需要输出str_pad时可以应用


function get_combinations($n)
{
  return range(0, pow(10, $n)-1);
}

$array = get_combinations(5);
$pad   = strlen(max($array));

// to output
echo str_pad($array[0], $pad, 0, STR_PAD_LEFT);
于 2011-06-17T11:57:06.123 回答
2
$result = array();
$count = pow(10,$x);
for ($i = 0, $i < $count, $i++) {
  $result[] = str_repeat('0', $x - strlen($i)) . $i;
}
于 2011-06-17T11:59:51.163 回答
1

你不能有一个整数,0000因为那只是0.

要获取从 0 到 9 的所有数字,请使用 the range() function

$array = range(0,9); // array(0,1,2,3,4,5,6,7,8,9)

对于更大的数字也是如此。

如果您希望它们作为字符串使用 sprintf 或重新格式化该数组。

或者只是使用一个for(循环:)

于 2011-06-17T11:58:44.893 回答
0
function get_combinations($exp){

    $max = pow(10, $exp) - 1;

    for ($i = 0; $i <= $max; $i++) $comb[] = str_pad($i, $exp, '0', STR_PAD_LEFT);

    return $comb;

} 
于 2011-06-17T12:01:51.430 回答
0

怎么样:

$n = 3;
function format($x) {
    global $n;
    return sprintf("%0${n}d", $x);
}
$arr = array_map('format', range(0, pow(10,$n)-1));
于 2011-06-17T12:10:13.937 回答