有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
如何写上面的循环啊??求救啊!

解决方案 »

  1.   

    $ab = array('01', '02');$cd = array('01' => array('01',.........'50'),
                '02' => array('01',.........'60));$ef = array('01',................'30');
    随机取 $ab[$rand]; 然后根据 $ab[$rand] 随机取 $cd[$ab[$rand]]; 再随机取 $ef 即可
      

  2.   

    ab 为 array(1 2) 随机抽取一个.
    判断其值...
    if(ab==1){
    cd=rand(1 50)
    }
    else{
    cd=rand(1 60);
    }
    ef=rand(1 30)这样就行了....
      

  3.   

    直接用循环,for,while都可以字符串格式化给你个参考
    echo str_pad('1', 2, "0", STR_PAD_LEFT);
    '1'表示需要格式化的字符串,2表示出来的字符串长度,0表示不够位数时用0代入,
    上面例子结果输出01
      

  4.   

    判断ab的值
    再进行随机抽取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)];
    }
    就这么个思路
      

  5.   

    for($ab=1;$ab<=2;$ab++){
        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>";
            }
        }
    }
      

  6.   

    少了个=for($ab=1;$ab<=2;$ab++){
      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>";
      }
      }
    }
      

  7.   

    你写的正是我要的,但是,我想实现,一个身份证号生成唯一一个六位号,要按顺序来,不能随即,生成后,把 身份证号,ab,cd,ef, ab+cd+ef这五个字段插入到一个表num中。
    010101
    010102
    010103
    010104
    010105
    010106
    010107
    010108
    010109
    010110