2016-11-27 2 views
0

私は現在、フットボールgame dataをループしていて、seen hereのすべての情報を計算しようとしています。これはどこが間違っているのか分からない不整合なデータ

私のコードが間違っているようだが、take a look hereの例として、Hull Cityチームを使用しましょう。

私のループは、そのクラスのインスタンスがそのチームに対して作成されていない場合は作成され、作成されている場合は既存のインスタンスが使用されます。

foreach ($soccerseason->getAllFixtures()->fixtures as $v) { 
      if ($v->status == "FINISHED") { 

      // Add data from home team 
      if (!array_key_exists($v->homeTeamName, $teamData)) { 
       $teamData[$v->homeTeamName] = new Calc(array($v->result->goalsHomeTeam, $v->result->goalsAwayTeam));} else { 
       $teamData[$v->homeTeamName]->addData(array($v->result->goalsHomeTeam, $v->result->goalsAwayTeam)); 
      } 
      if (!array_key_exists($v->awayTeamName, $teamData)) { 
       $teamData[$v->awayTeamName] = new Calc(array($v->result->goalsHomeTeam, $v->result->goalsAwayTeam));} else { 
       $teamData[$v->awayTeamName]->addData(array($v->result->goalsHomeTeam, $v->result->goalsAwayTeam)); 
      } 
      } 
     } 

そして、ここで私のCalcクラスであり、これは正常に動作しなければならない、私は問題を把握することはできません。

class Calc { 
    public $config; 
    public $win = 0, $draw = 0, $loss = 0, $goalFor = 0, $goalConc = 0; 

    public function __construct($payload) { 
     // Load config file 
     $this->config = parse_ini_file('config.ini', true); 

     // Add wins, losses, draws, goals for and goal conceived 
     $this->addData($payload); 
    } 

    // Linked data updated, ammend values 
    public function calcPlays() { 
     return 0 + $this->win + $this->draw + $this->loss; 
    } 
    public function calcPoints() { 
     // Add 0 to ensure value is a int 
     return (0 + ($this->win * $this->config->winPoints) + 
     ($this->draw * $this->config->drawPoints) + 
     ($this->loss * $this->config->lossPoints)); 
    } 
    public function calcGoalDifference() { 
     return ($this->goalFor + $this->goalConc); 
    } 

    public function addData($data) { 
     // Append goal data 
     $this->goalFor += $data[0]; $this->goalConc += $data[1]; 

     if ($data[0] > $data[1]) { $this->win++; } elseif 
     ($data[0] < $data[1]) { $this->loss++; } elseif 
     ($data[0] == $data[1]) { $this->draw++; } 
    } 
    } 
+0

あなたの質問は正確ですか? – Striezel

+0

なぜ、数値が違うのですか? –

+0

お返事ありがとうございます*あなたの質問は何ですか?* –

答えて

0

私は、離れたチームが勝ったかどうかを計算するときにデータを交換する必要がありました。

if (!array_key_exists($v->homeTeamName, $teamData)) { 
       $teamData[$v->homeTeamName] = new Calc(array($v->result->goalsHomeTeam, $v->result->goalsAwayTeam)); 
      } else { 
       $teamData[$v->homeTeamName]->addData(array($v->result->goalsHomeTeam, $v->result->goalsAwayTeam)); 
      } 
      if (!array_key_exists($v->awayTeamName, $teamData)) { 
       $teamData[$v->awayTeamName] = new Calc(array($v->result->goalsAwayTeam, $v->result->goalsHomeTeam)); 
      } else { 
       $teamData[$v->awayTeamName]->addData(array($v->result->goalsAwayTeam, $v->result->goalsHomeTeam)); 
      } 
関連する問題