Function getrand ($ proarr ){
$ Result = '';
// The total probability precision of the probability Array
$ Prosum = array_sum ($ proarr );
// Probability array Loop
Foreach ($ proarr as $ key => $ procur ){
$ Randnum = mt_rand (1, $ prosum );
If ($ randnum <= $ procur ){
$ Result = $ key;
Break;
} Else {
$ Prosum-= $ procur;
}
}
Unset ($ proarr );
Return $ result;
}
<? PHP
$ Prize_arr = array (
'0' => array ('id' => 1, 'prize' => 'tablet pc', 'V' => 3 ),
'1' => array ('id' => 2, 'prize' => 'digital camera ', 'V' => 5 ),
'2' => array ('id' => 3, 'prize' => 'speaker device', 'V' => 10 ),
'3' => array ('id' => 4, 'prize' => '4g disks', 'V' => 12 ),
'4' => array ('id' => 5, 'prize' => 'q coin 10 yuan ', 'V' => 20 ),
'5' => array ('id' => 6, 'prize' => 'Next time you may be able to get in, ', 'V' => 50 ),
);
Foreach ($ prize_arr as $ key => $ Val ){
$ Arr [$ Val ['id'] = $ Val ['V'];
}
// Print_r ($ ARR );
$ Rid = getrand ($ ARR); // obtain the award id based on the probability.
$ Res ['msg '] = ($ rid = 6 )? ;
$ Res ['prize'] = $ prize_arr [$ RID-1] ['prize']; // medium Award
Echo json_encode ($ res); exit;
?>
Self-Use
$ Prize_arr = array (
'0' => array ('id' => 1, 'prize' => '1 point', 'V' => 90 ),
'1' => array ('id' => 2, 'prize' => '10 credits ', 'V' => 9 ),
'2' => array ('id' => 3, 'prize' => '123', 'V' => 1)
);
Foreach ($ prize_arr as $ key => $ Val ){
$ Arr [$ Val ['id'] = $ Val ['V'];
}
$ Rid = getrand ($ ARR );
$ _ DATA ['title'] = $ prize_arr [$ RID-1] ['prize']; // medium Award
Golden eggs hit probability