Php 由4个元素组成的数组中未定义的偏移量3

Php 由4个元素组成的数组中未定义的偏移量3,php,multidimensional-array,Php,Multidimensional Array,在过去的几天里,我一直在使用Steam api和PHP,一切都很好,直到我开始在数组中收到奇怪的偏移量错误和重复值。我尝试将代码分解为一个没有api调用和html的版本,但仍然收到相同的未知错误 我知道键值与数组元素1相同(因此我可以使用array\u key\u exists()。我喜欢将所有元素都放在一个数组中,以便打印成html。该程序的目标是快速积累json中检索到的数据 PHP注意:第54行的未定义偏移量:3 in./test.PHP 又名此行->游戏[$gameId][3]+=1 问

在过去的几天里,我一直在使用Steam api和PHP,一切都很好,直到我开始在数组中收到奇怪的偏移量错误和重复值。我尝试将代码分解为一个没有api调用和html的版本,但仍然收到相同的未知错误

我知道键值与数组元素1相同(因此我可以使用array\u key\u exists()。我喜欢将所有元素都放在一个数组中,以便打印成html。该程序的目标是快速积累json中检索到的数据

PHP注意:第54行的未定义偏移量:3 in./test.PHP
又名此行->游戏[$gameId][3]+=1


问题是当您“更新”(重新设置)
$games[$gameId][3]

$games[$gameId] = array(
    //$games[$gameId][0] will not change
    $games[$gameId][1] += $newEntry[1],
    $games[$gameId][2] += $newEntry[2],
    $games[$gameId][3] += 1
);
您正在创建一个新数组,并且只向其中添加了3个元素。您需要将
$games[$gameId][0]
添加到新数组中,使其具有4个元素

$games[$gameId] = array(
    $games[$gameId][0],
    $games[$gameId][1] += $newEntry[1],
    $games[$gameId][2] += $newEntry[2],
    $games[$gameId][3] += 1
);
或者,与其每次都创建一个新数组,只需执行以下操作:

if(array_key_exists($gameId, $games)){
    $games[$gameId][1] += $newEntry[1];
    $games[$gameId][2] += $newEntry[2];
    $games[$gameId][3] += 1;
}
else {
     $games[$gameId] = $newEntry;
}
if(array_key_exists($gameId, $games)){
    $games[$gameId][1] += $newEntry[1];
    $games[$gameId][2] += $newEntry[2];
    $games[$gameId][3] += 1;
}
else {
     $games[$gameId] = $newEntry;
}