php计算大乐透中奖金额方法。
/** * @desc php计算大乐透中奖金额方法 * @param string $buy_str 购买结果,类似 4+15+20+25+26+3+8 * @param string $open_result_str 开奖结果,类似 4+15+20+25+26+2+8 * @return array */ function countDltLottery($buy_str, $open_result_str) { $result = [ 'win_ammount' => 0,//中奖金额 'lottery_level' => ''//中奖等级描述 ]; $buy_list = explode('+', $buy_str); $buy_red_list = array_splice($buy_list, 0, 5); array_walk($buy_red_list, function (&$value) { $value = intval($value); }); $buy_blue_list = array_splice($buy_list, -2); array_walk($buy_blue_list, function (&$value) { $value = intval($value); }); $open_result_list = explode('+', $open_result_str); $open_result_red_list = array_splice($open_result_list, 0, 5); array_walk($open_result_red_list, function (&$value) { $value = intval($value); }); $open_result_blue_list = array_splice($open_result_list, -2); array_walk($open_result_blue_list, function (&$value) { $value = intval($value); }); $red_lottery_num = count(array_intersect($buy_red_list, $open_result_red_list)); $blue_lottery_num = count(array_intersect($buy_blue_list, $open_result_blue_list)); if ($blue_lottery_num == 2) { switch ($red_lottery_num) { case 0: case 1: $result['win_ammount'] = 5; $result['lottery_level'] = '九等奖'; break; case 2: $result['win_ammount'] = 15; $result['lottery_level'] = '八等奖'; break; case 3: $result['win_ammount'] = 200; $result['lottery_level'] = '六等奖'; break; case 4: $result['win_ammount'] = 3000; $result['lottery_level'] = '四等奖'; break; case 5: $result['win_ammount'] = 10000000; $result['lottery_level'] = '一等奖'; break; } } else if ($blue_lottery_num == 1) { switch ($red_lottery_num) { case 0: case 1: break; case 2: $result['win_ammount'] = 5; $result['lottery_level'] = '九等奖'; break; case 3: $result['win_ammount'] = 15; $result['lottery_level'] = '八等奖'; break; case 4: $result['win_ammount'] = 300; $result['lottery_level'] = '五等奖'; break; case 5: $result['win_ammount'] = 5000000; $result['lottery_level'] = '二等奖'; break; } } else { switch ($red_lottery_num) { case 0: case 1: case 2: break; case 3: $result['win_ammount'] = 5; $result['lottery_level'] = '九等奖'; break; case 4: $result['win_ammount'] = 100; $result['lottery_level'] = '七等奖'; break; case 5: $result['win_ammount'] = 10000; $result['lottery_level'] = '三等奖'; break; } } return $result; }