【问题标题】:PHP - counting in a single variable the difference in operations between two values of arraysPHP - 在单个变量中计算两个数组值之间的操作差异
【发布时间】:2016-07-14 17:48:02
【问题描述】:

我的问题是当我计算玩家的“胜利”时,它会计算前一个值和当前值中的每一次胜利。

再详细点,我有这个值

$a0 = 10;
$a1 = 12;
$a2 = 14;

$b0 = 20;
$b1 = 20; 
$b2 = 10;

$arr1 = array($a0, $a1, $a2);  // Martina's numbers 
$arr2 = array($b0, $b1, $b2);  // George's numbers


foreach($arr1 as $key => $val){

        if($val > $arr2[$key]){  // Martina win , +1 point  for Martina

            $martina++;
            print($martina . " ");

        }elseif($val < $arr2[$key]){   // George win , +1 point for George
            $george++;
            print($george . " "); 

        }else{  // if is Equal - no score increase 

            print("");

        } 

}

在这种情况下,George 之间的分数必须为 1 2,但我的代码还输出 first win 的分数,以及加起来的分数。

我怎样才能让它只给我加分..?

希望你能理解我对问题的解释,我刚开始学习这种语言。

【问题讨论】:

  • prints移出foreach
  • 呵呵:“玛蒂娜+1分”,给爱丽丝加分。 "+1 分给 George",给 Bob 加分 xD

标签: php arrays foreach operators addition


【解决方案1】:

将打印移出foreach

$arr1 = array(10, 12, 14);  // Martina's numbers 
$arr2 = array(20, 20, 10);  // George's numbers
$alice = 0;
$bob = 0;

foreach($arr1 as $key => $val) {
    if($val > $arr2[$key]) {
        // Martina win , +1 point  for Martina
        $alice++;
    } elseif($val < $arr2[$key]) {
        // George win , +1 point for George
        $bob++;
    } 

}

print('Alice: ' . $alice . PHP_EOL);
print('Bob: ' . $bob . PHP_EOL); 

【讨论】:

  • 好,这行得通,但是如果 3 个值中的 2 个或数组的 3 个值之一是 EQUAL ,我怎样才能使它起作用,计算我的获胜者点数更大...而等于被视为无/或+0 ...? ...这也是一个问题..
【解决方案2】:

我终于做到了!!

非常感谢 E_p 帮助解决这个问题。 最后正确的代码是:

<?php

// Values of Martina's numbers

$a0 = 21;
$a1 = 2;
$a2 = 32;

//Values of George's numbers
$b0 = 22; 
$b1 = 3;  
$b2 = 13; 

//Putting the values into arrays
$arr1 = array($a0, $a1, $a2);
$arr2 = array($b0, $b1, $b2);

// Given two variables for players score
$martina = 0;
$george = 0;


foreach($arr1 as $key => $val){

            if($val > $arr2[$key]){
                $martina++;
            }elseif($val < $arr2[$key]){
                $george++;
            }

}

print($martina . " " . $george . PHP_EOL);

【讨论】:

  • 行:$george; $martina; 无用,因为它们什么都不做。至于echo "Insert the right values!"; 不知道你怎么会到达那里。
  • 现在它几乎 100% 符合我的答案。为什么不接受我的回答?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多