想取10000个由数字组成的18位的序列号,不能有重复的,大家帮忙说说应该怎么取。

解决方案 »

  1.   

    建个表,将字段设置成unique,加添加一万次喽,添加失败的就是重复的
      

  2.   

    <?php
    $arr = array();
    for($i=0;$i<10000;$i++){
        $str = ""; 
        for($n=0;$n<18;$n++){
            $str.=rand(0, 9);
        } 
        if(isset($arr[$str])){
            $i--;
            continue;
        } else {
            $arr[$str]=$str;
        }
    }
    var_dump($arr);
    ?>
      

  3.   

    $array = array();
    $i = 0;
    while($i<1000) {
    $str = '';
    for($j=0;$j<18;$j++) {
    $str .= rand(0,9);
    }
    if(!in_array($str,$array)) {
    $array[] = $str;
    $i++;
    }
    }print_r($array);
      

  4.   

    <?php
    for($i=0;$i<10000;$i++){
    echo uniqid()."\n";
    }
    ?>
    1W个13位不重复的