![](/img/trans.png)
[英]Generate all combinations of an array with a given number of slots in PHP
[英]How to create array for possible probability (combinations) for given number in php
我有一个面向数学的问题。在这里,我想获得所有可能的组合并希望以数组形式存储。
例如:-
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,....
提前致谢
$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);
$result = array();
$count = pow(10,$x);
for ($i = 0, $i < $count, $i++) {
$result[] = str_repeat('0', $x - strlen($i)) . $i;
}
您不能有一个整数0000
因为它只是0
。
要获取0到9之间的所有数字,请使用 the range() function
:
$array = range(0,9); // array(0,1,2,3,4,5,6,7,8,9)
对于更大的数字也是如此。
如果希望将它们用作字符串,请使用sprintf或将其重新格式化为该数组。
或者只是使用for(
循环:)
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;
}
怎么样:
$n = 3;
function format($x) {
global $n;
return sprintf("%0${n}d", $x);
}
$arr = array_map('format', range(0, pow(10,$n)-1));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.