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

したがって、出力が 必要な場合は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 に答える