比如是0-100个数字
如果是时使用数组的话在for里无法使用 求解决办法

解决方案 »

  1.   

    $seed = array();
    for($i = 0; $i <= 100; $i ++) $seed[] =$i;
    function myRand($seed, $num) {
       //参数
       //$seed 种子数组
       //$num 生成随机数的个数
       $ar_result = array();
       $count = count($seed);
       while($num-- > 0) {
          while($tmp = $seed[rand(0, $count - 1)]) {
             if (!in_array($tmp, $ar_result)) {
                $ar_result[] = $tmp;
                break;
             }
          }
       }
       return $ar_result;
    }
    echo "<pre>";
    print_r(myRand($seed, 10));
      

  2.   

    //改进一下
    $seed = array();
    for($i = 0; $i <= 100; $i ++) $seed[] =$i;
    function myRand($seed, $num) {
       $ar = $seed;
       $ar_result = array();
       while($num -- > 0) {
          $count = count($ar);
          $r = rand(0, $count - 1);
          $ar_result[] = $ar[$r];
          unset($ar[$r]);
          $ar = array_values($ar);
       }
       return $ar_result;
    }
    echo "<pre>";
    print_r(myRand($seed, 10));