我目前正在通过足球游戏数据进行循环,并试图计算所有可以在此处看到的信息。
但是,我的代码似乎出错了,在这里看看,让我们以赫尔城团队为例。
所以,下面是我的循环,如果我的班级不是为该团队制作的实例,则它是创建的,如果它是制造的,则使用现有的。
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++; }
}
}
事实证明,我需要在计算客车团队是否赢得胜利时将数据交换。
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));
}