我有一个公式,可以解决如何计算投注累加器的问题。
公式为:
赌注x(分数赔率+ 1)x(分数赔率+ 1)等......
我正在寻找一个循环几率的PHP函数,然后返回值。
我有一个如下数组(包含分数赔率)......
$odds = array(
'8/15',
'11/2',
'13/2',
'7/2'
);
一些示例PHP代码,它显示了我如何做到这一点(没有函数)......
$result = 10 * (8/15 + 1) * (11/2 + 1) * (13/2 + 1) * (7/2 + 1);
echo number_format($result,2); // 3,363.75
现在我的赌注设定为'10'。
我需要做的是遍历odds数组并将它们乘以括号并开始乘以Stake,因此测试用例为10.
有人可以建议一种方法来写这个吗?当我尝试写入*时,我不断收到PHP错误。
如果主题不适合社区,请说明我将删除。
由于
答案 0 :(得分:3)
这样的事情应该有效
function compute ($stake, $values) {
$result = $stake;
foreach ($values as $val)
{
$parts = explode('/', $val);
$result *= ($parts[0] / $parts[1] + 1);
}
return $result;
}
$stake = 10;
$odds = array (
'8/15',
'11/2',
'13/2',
'7/2'
);
$result = compute($stake, $odds);
var_dump($result);
以下是您可以使用的工作演示:http://3v4l.org/RNAGH
答案 1 :(得分:2)
我觉得你会在PHP的类型杂耍中获得不可预测的行为,所以使用explode分割分数字符串将是最好的方法
function calculate($stake, $odds)
{
$res = $stake;
foreach ($odds as $odd) {
$split = explode('/', $odd);
$res *= ($split[0] / $split[1]) + 1;
}
return $res;
}
echo calculate(10, $odds);
答案 2 :(得分:1)
你的意思是这样
$stake = 10;
$odds = array(
'8/15',
'11/2',
'13/2',
'7/2'
);
function formula($stake, array $odds){
$result = $stake;
foreach ($odds as $odd) {
$digit = explode('/',$odd);
$result *= ($digit[0]/$digit[1] + 1);
}
return $result;
}
echo formula($stake, $odds);
答案 3 :(得分:-1)
像我这样的东西,我想
$res = stake;
foreach ($odds as $odd) {
$res *= ((intval(explode("/", $odd)[0]) / intval(explode("/", $odd)[1])) + 1);
}
echo $res;