php - for循环php时非法字符串偏移'id'
问题描述
我有这个问题,我认为很容易解决这个问题,但我无法处理如何做到这一点;x
编辑:我知道为什么我会收到此错误,$user->items[$i] 是一个字符串,但仍然... idk 我该如何解决它
我收到错误的代码部分如下所示
for($i=0;$i <= 10; $i++){
if($user->items[$i]["id"] != $item->id){
$user->items = json_encode(array_merge($user->items, $drop_item));
} else {
$user->items = json_encode(array_merge($user->items[$i], ['amount' => 99]));
}
}
当我运行我的代码时,我遇到了这个错误 Illegal string offset 'id'
如果重要的话,数组看起来像这样
[{"id":12,"amount":1,"upgrade":0},{"id":13,"amount":1,"upgrade":0}]
解决方案
在循环的第一次迭代中,您$user->items
使用字符串(的结果json_encode()
)覆盖。在下一次迭代中,它不再是一个数组,因此您会收到一条错误消息。
您还假设数组中总是有 10 个项目。如果没有怎么办?