2016-07-14 23 views
0

Mein Problem ist, wenn ich die "Gewinne" eines Spielers zählt, zählt es alle Gewinne im vorherigen Wert und der aktuellen.PHP - Zählen in einer einzigen Variable den Unterschied in den Operationen zwischen zwei Werte von Arrays

Ausführlichere, ich habe diese Werte

$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(""); 

     } 

} 

Die Punktzahl zwischen ihnen muss es in diesem Fall 1 2 für George sein, aber meinen Code gibt auch die Gäste aus dem ersten Sieg und der gert Punktzahl.

Wie kann ich es schaffen, mir nur die zusätzliche Punktzahl zu trauen ..?

Ich hoffe, dass Sie meine Erklärung des Problems verstehen, ich bin am Anfang dieser Sprache.

+2

Bewegung 'prints' außerhalb von' foreach' –

+2

hehe: "+1 Punkt für Martina", _adds einen Punkt zu Alice_. "+1 Punkt für George", fügt einen Punkt Bob_ xD – FirstOne

Antwort

3

Verschieben Drucke außerhalb von 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); 
+0

Gut, das funktioniert, aber wenn 2 von 3 Werte oder einer von 3 Werten der Arrays gleich sind, wie kann ich es funktioniert, zählen mich den Gewinner Punkt für derjenige, der die Zahl größer hat ... und der gleiche, der als nichts// +0 ... beschimpft wird? ... hier ist auch ein Problem .. –

0

Schließlich habe ich es !!

Vielen Dank E_p für Ihre Hilfe bei der Lösung dieses Problems. Der letzte und der richtige Code ist:

<?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); 
+0

Zeilen: '$ George;' '$ Martina;' sind nutzlos, da sie nichts tun. Wie für echo "Setze die richtigen Werte ein!"; "Nicht sicher, wie würdest du jemals dorthin kommen? –

+0

übertrieben, Sie haben Recht! Ich habe es geändert –

+0

Jetzt entspricht es meiner Antwort fast 100%. Warum akzeptierst du nicht einfach meine Antwort? –