获得数字的优势。 PHP数组

时间:2016-02-06 23:20:13

标签: php arrays

有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 . "%";
    }
     }

它不起作用

1 个答案:

答案 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)
}