有6位数,六位数上的数字是:
ab cd ef
可以看做的三个整体ab为(01-02)cd为(01,02,03,04......49,50)ef为(01,02,03,04......29,30)规则说明:
当ab=01时,cd可取(01,02,03,04......49,50)中,ef可取(01,02,03,04......29,30)中数。
当ad=02时,cd可取(01,02,03,04......49,50,51,52......59,60)中,ef可取(01,02,03,04......29,30)中数。例如 010101
010102
。
。
。
010130
010201
。
。
。
015030
020101
。
。
。
025001
。
。
。
025930
如何写上面的循环啊??求救啊!
ab cd ef
可以看做的三个整体ab为(01-02)cd为(01,02,03,04......49,50)ef为(01,02,03,04......29,30)规则说明:
当ab=01时,cd可取(01,02,03,04......49,50)中,ef可取(01,02,03,04......29,30)中数。
当ad=02时,cd可取(01,02,03,04......49,50,51,52......59,60)中,ef可取(01,02,03,04......29,30)中数。例如 010101
010102
。
。
。
010130
010201
。
。
。
015030
020101
。
。
。
025001
。
。
。
025930
如何写上面的循环啊??求救啊!
'02' => array('01',.........'60));$ef = array('01',................'30');
随机取 $ab[$rand]; 然后根据 $ab[$rand] 随机取 $cd[$ab[$rand]]; 再随机取 $ef 即可
判断其值...
if(ab==1){
cd=rand(1 50)
}
else{
cd=rand(1 60);
}
ef=rand(1 30)这样就行了....
echo str_pad('1', 2, "0", STR_PAD_LEFT);
'1'表示需要格式化的字符串,2表示出来的字符串长度,0表示不够位数时用0代入,
上面例子结果输出01
再进行随机抽取1到N(N >= 1 and N <= 50)中的一个数
$arr1 = array(01,02,03,04......49,50);
$arr2 = array(01,02,03,04......29,30);
$arr3 = array(01,02,03,04......59,60);
if($ab == '01'){
$cd = $arr1[rand(1, 50)];
$ef = $arr2[rand(1, 50)];
}else if($ab == '02'){
$cd = $arr1[rand(1, 60)];
$ef = $arr2[rand(1, 50)];
}
就这么个思路
for($cd=1;$cd<(($ab==1)?50:60);$cd++){
for($ef=1;$ef<=30;$ef++){
echo sprintf("%02d",$ab).sprintf("%02d",$cd).sprintf("%02d",$ef)."<br>";
}
}
}
for($cd=1;$cd<=(($ab==1)?50:60);$cd++){
for($ef=1;$ef<=30;$ef++){
echo sprintf("%02d",$ab).sprintf("%02d",$cd).sprintf("%02d",$ef)."<br>";
}
}
}
010101
010102
010103
010104
010105
010106
010107
010108
010109
010110