我有四个插槽。每个插槽可以是0或1.如何使循环获得所有可能的组合?我怎么处理这个问题?
以下是上下文:
在数据库表中,有四个字段(查看,创建,编辑,删除)。每个字段可以是0或1.我希望保存每个可能的组合。
答案 0 :(得分:3)
你可以使用4个嵌套循环来接近它:
for ($a=0; $a<=1; $a++) {
for ($b=0; $b<=1; $b++) {
for ($c=0; $c<=1; $c++) {
for ($d=0; $d<=1; $d++) {
echo "$a $b $c $d\n";
}
}
}
}
这会产生:
0 0 0 0
0 0 0 1
...
1 1 1 0
1 1 1 1
或者,您可以从[0,16]范围内的数字中提取二进制数字:
for ($i=0; $i<16; $i++) {
$a = ($i & 8) ? 1 : 0;
$b = ($i & 4) ? 1 : 0;
$c = ($i & 2) ? 1 : 0;
$d = ($i & 1) ? 1 : 0;
echo "$a $b $c $d\n";
}