$arr = array(2,3,4,5,6,7,8,9);
$index = array_rand($arr);
echo $arr[$index];

解决方案 »

  1.   


    $arr = array(2,3,4,5,6,7,8,9);
    while(in_array($key=rand(1,1000), $arr)){}
    echo $key;
      

  2.   


    $arr=array(2,3,4,5,6,7,8,9);
    function my($arr){
        $num=mt_rand(1,1000);
        if(in_array($num,$arr)){
            my($arr);
        }else{
            return $num;
        }
    }
    echo my($arr);
      

  3.   

    $ar = range(1,1000);
    $a=array(2,3,4,5,6,7,8,9);
    $b = array_diff($ar,$a);
    $i = array_rand($b);
    echo $b[$i];
      

  4.   

    两种思路
    1.先random,如得出的数是不可选的,继续random,直到得出允许的数。
    2.先排除不可以选,再random。第一种思路:
    <?php
    $arr = array(2,3,4,5,6,7,8,9);do{
        $num = mt_rand(1,1000);    
    }while(in_array($num,$arr));echo $num;
    ?>第二种思路:<?php
    $r = range(1,1000);
    $arr = array(2,3,4,5,6,7,8,9);
    $num = $r[array_rand(array_diff($r,$arr))];
    echo $num;
    ?>