有dmgs数组。
$ dmgs array:
Array ( [0] => 5.1k [1] => 3.8k [2] => 12.9k [3] => 10.4k [4] => 4.1k [5] => 8.0k [6] => 7.6k [7] => 14.9k [8] => 13.6k [9] => 3.0k )
0,1,2,3,4是蓝队球员。
其他人都是红人。
$blueteamdmg = $dmgs[0] + $dmgs[1] + $dmgs[2] + $dmgs[3] + $dmgs[4] ;
$redteamdmg = $dmgs[5] + $dmgs[6] + $dmgs[7] + $dmgs[8] + $dmgs[9] ;
我需要将玩家的dmg与他们的球队dmg进行比较。
示例:蓝队做了15k dmg。 dmgs [1](球员2蓝队)做了7.5k dmg。 他总共花了50%dmg他的球队。
我需要一个其他数组,让每个玩家都能获得dmg的优势。
像这样: Array (
[0] => 15% // blue team
[1] => 20% // blue team
[2] => 50% // blue team
[3] => 10% // blue team
[4] => 5% // blue team
[5] => 30% // red team
[6] => 12% // red team
[7] => 22% // red team
[8] => 28% // red team
[9] => 8% // red team )
所以会有另一个名为$ dmgpercantages []
的数组但我不知道该怎么做。
抱歉英语不好。$dmgpercantages = array(yuzde($dmgs[0]),yuzde($dmgs[1]),yuzde($dmgs[2]),yuzde($dmgs[3]),yuzde($dmgs[4]),yuzde($dmgs[5]),yuzde($dmgs[6]),yuzde($dmgs[7]),yuzde($dmgs[8]),yuzde($dmgs[9]));
function yuzde($dmgs[$a]) {
if ($a <= 4) {
$percentage = ($blueteamdmg / $dmgs[$a]) * 100;
echo $percentage . "%";}
else {
$percentage = ($redteamdmg / $dmgs[$a]) * 100;
echo $percentage . "%";
}
}
它不起作用
答案 0 :(得分:0)
此代码仅适用于此特定情况,假设总玩家总是10:
$dmgs = array(1,2,3,4,5,6,7,8,9,10);
list($blues, $red) = array_chunk($dmgs, 5);
$blue_team_dmg = array_sum($blues);
$red_team_dmg = array_sum($red);
$blue_percents = array();
$red_percents = array();
foreach ($blues as $dmg) {
$blues_percents[] = round($dmg / $blue_team_dmg * 100, 2);
}
foreach ($red as $dmg) {
$red_percents[] = round($dmg / $red_team_dmg * 100, 2);
}
$dmgpercantages = array_merge($blues_percents, $red_percents);
结果:
array(10) {
[0] =>
double(6.67)
[1] =>
double(13.33)
[2] =>
double(20)
[3] =>
double(26.67)
[4] =>
double(33.33)
[5] =>
double(15)
[6] =>
double(17.5)
[7] =>
double(20)
[8] =>
double(22.5)
[9] =>
double(25)
}