public function get_lottery(){
header('Access-Control-Allow-Origin:*');
$pinfo = $this->get_z();
$return = ["rid"=>$pinfo["id"],"rname"=>$pinfo["name"]];
return json($return);
}
public function get_z(){
$prizes = array(
0 => array(
"id" => 0, //中奖id
"name" => "谢谢参与", //奖品名称
"count" => "1", //库存
),
1 => array(
"id" => 1,
"name" => "罗浮山门票",
"count" => "10",
),
2 => array(
"id" => 2,
"name" => "罗浮山嘉宝田温泉体验券",
"count" => "50",
),
3 => array(
"id" => 3,
"name" => "精美旅游书籍《山水酿惠州》",
"count" => "0",
),
4 => array(
"id" => 4,
"name" => "碧海湾漂流门票",
"count" => "50",
),
5 => array(
"id" => 5,
"name" => "南昆山门票",
"count" => "0",
),
6 => array(
"id" => 6,
"name" => "云顶温泉精美礼品",
"count" => "0",
),
);
foreach ($prizes as $key => $val) {
$arr[$val['id']] = $val['count'];
}
$rid = $this->getRand($arr,$arr);
return $prizes[$rid];
}
public function getRand($proArr, $proCount) {
$result = '';
$proSum = 0; //概率数组循环
foreach ($proCount as $key => $val) {
if ($val <= 0) {
continue;
} else {
$proSum = $proSum + $proArr[$key];
}
}
foreach ($proArr as $key => $proCur) {
if ($proCount[$key] <= 0) {
continue;
} else {
$randNum = mt_rand(1, $proSum);
if ($randNum <= $proCur) {
$result = $key;
break;
} else {
$proSum -= $proCur;
}
}
}
unset($proArr);
return $result;
}
前端调用请求 get_lottery 方法,返回中奖奖项。