php随机出现某个数
A->10% B->20% C->30% D->40%
写一个方法随机出现ABCD的方法

解决方案 »

  1.   


    $arr = array(a,b,b,c,c,c,d,d,d,d);
    echo $arr[array_rand($arr)];
      

  2.   

    $a = mt_rand(1, 100);
    if($a<=10){//10的概率
       $result = "A";
    }else if($a>10 && $a<=30){//20的概率
       $result = "B";
    }
      

  3.   

    可以循环构造数组for($i=0;$i<30;$++)    //填入30%的a
    {
        array_push($arr,"a");
    }依次类推
      

  4.   


    function getRandChar(){
        $config=array(//任意配置
            'A'=>10,
            'B'=>20,
            'C'=>30
        );    $rNum = rand(1, array_sum($config));
        
        while(true){
            $up += current(&$config);//取得当前值判断随机数所处的范围
            if($rNum<=$up){
                return key(&$config);
            }
            if(next(&$array) ===false){
                return key(&$config);
            }
        }
    }
    随便写了个,未经调试
      

  5.   

    if(next(&$array) ===false){
                return key(&$config);
            }
    红色的换成$config