0

我需要创建一个这样的数组:

$array = array(array(1,1,1,0,0,0,1,1), array(1,1,1,1,0,0,1,0));

但所有 1 和 0 的组合。

我希望自动执行此操作,因此我认为 for 循环将是最好的主意。换句话说,内部数组应该是所有组合,例如 0,0,0,0,0,0,0,0 然后 0,0,0,0,0,0,0,1 然后 0,0,0,0 ,0,0,1,0 然后 0,0,0,0,0,0,1,1。对于所有组合。我是这样开始的:

$array = array();
for($i =0;$i<100; $i++){
$array[$i] = 0;
}

我怎样才能让它做我想做的事情?

4

2 回答 2

2

用于decbin将您的计数器转换为二进制。

str_pad允许您填充字符串,在这种情况下,我将 0 填充为 8 位的长度。

$array = array();
for($i =0;$i<100; $i++){
    $array[$i] = str_pad(decbin($i), 8, "0", STR_PAD_LEFT);;
}
var_dump($array);

演示

于 2013-03-09T06:37:51.357 回答
1

这将打印出所有二进制变量的数组,从00000000每个11111111变量在它自己的字符数组中的位置。

$array = array();

for ($i = 0; $i < 256;)
{
    $array[] = str_split(sprintf('%08d', decbin($i++)));
}
print_r($array);

查看示例

于 2013-03-09T07:17:22.133 回答