$prize_arr = array( 

    '0' => array('id'=>1,'min'=>1,'max'=>29,'prize'=>'һȽ','v'=>1), 

    '1' => array('id'=>2,'min'=>302,'max'=>328,'prize'=>'Ƚ','v'=>2), 

    '2' => array('id'=>3,'min'=>242,'max'=>268,'prize'=>'Ƚ','v'=>5), 

    '3' => array('id'=>4,'min'=>182,'max'=>208,'prize'=>'ĵȽ','v'=>7), 

    '4' => array('id'=>5,'min'=>122,'max'=>148,'prize'=>'Ƚ','v'=>10), 

    '5' => array('id'=>6,'min'=>62,'max'=>88,'prize'=>'Ƚ','v'=>25), 

    '6' => array('id'=>7,'min'=>array(32,92,152,212,272,332), 

'max'=>array(58,118,178,238,298,358),'prize'=>'ߵȽ','v'=>50) 

); 

$prize_arridʶͬĽminʾԲиӦСǶȣmaxʾǶȣһȽӦСǶȣ0Ƕ30maxֵΪ1maxֵΪ29Ϊ˱齱ָָڽߡԲ˶ߵȽÿߵȽӦĽǶȷΧprizeʾݣvʾнʣǻ֣ᷢ߸vܺΪ100vֵΪ1нΪ1%ơ

н㷨վ£PHP+jQueryʵַ齱нܾĸ㷨ֱӽ

 

function getRand($proArr) { 

    $result = ''; 

 

    //ܸʾ 

    $proSum = array_sum($proArr); 

 

    //ѭ 

    foreach ($proArr as $key => $proCur) { 

        $randNum = mt_rand(1, $proSum); 

        if ($randNum <= $proCur) { 

            $result = $key; 

            break; 

        } else { 

            $proSum -= $proCur; 

        } 

    } 

    unset ($proArr); 

 

    return $result; 

} 

getRand()õļʼidǿԽŵgetRand()

 

foreach ($prize_arr as $key => $val) { 

    $arr[$val['id']] = $val['v']; 

} 

 

$rid = getRand($arr); //ݸʻȡid 

 

$res = $prize_arr[$rid-1]; //н 

$min = $res['min']; 

$max = $res['max']; 

if($res['id']==7){ //ߵȽ 

    $i = mt_rand(0,5); 

    $result['angle'] = mt_rand($min[$i],$max[$i]); 

}else{ 

    $result['angle'] = mt_rand($min,$max); //һǶ 

} 

$result['prize'] = $res['prize']; 

 

echo json_encode($result); 

УǵgetRand()ͨõĽȻݽõĽǶȷΧСǶȺǶȼһǶֵ飬Ƕangleͽprizejsonʽ

jQuery

ĵĻϣǶǰjQueryи죬ʼ齱ť̨data.phpһajaxɹؽϢתָ룬ָָλתdata.phpصĽǶֵ

 

$(function(){ 

     $("#startbtn").click(function(){ 

        lottery(); 

    }); 

}); 

function lottery(){ 

    $.ajax({ 

        type: 'POST', 

        url: 'data.php', 

        dataType: 'json', 

        cache: false, 

        error: function(){ 

            alert('ˣ'); 

            return false; 

        }, 

        success:function(json){ 

            $("#startbtn").unbind('click').css("cursor","default"); 

            var a = json.angle; //Ƕ 

            var p = json.prize; // 

            $("#startbtn").rotate({ 

                duration:3000, //תʱ 

                angle: 0, 

                animateTo:1800+a, //תǶ 

                easing: $.easing.easeOutSine, 

                callback: function(){ 

                    var con = confirm('ϲ㣬е'+p+'\nҪһ'); 

                    if(con){ 

                        lottery(); 

                    }else{ 

                        return false; 

                    } 

                } 

            }); 

        } 

    }); 

} 

ǹԶ庯lottery()lottery()data.phpһPOSTɹнϢ󣬵rotateʼתתǶɺ̨صĽǶȾ1800+aʾתĽǶȣָת6Ȧ+aȺֹͣȻڵʼ齱ťʱlottery()ת̳齱ɡ

ԱĵתתЧ̫ףĶվ£˴ת-jQuery+PHPʵֵĳ齱()