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