json_decode、array和foreach出现错误


Errors with json_decode, array and foreach

我将此代码用于Virtuelmart:

$product_id_to_remove = 3;
$cart = json_decode($_SESSION['__vm']['vmcart']);
foreach($cart->cartProductsData as $k => $v){
  if($v->virtuemart_product_id == $product_id_to_remove) unset($cart->cartProductsData[$k]);
}
$_SESSION['__vm']['vmcart'] = json_encode($cart);

但我得到了一个致命的错误:不能在中使用stdClass类型的对象作为数组。。。第4行。如果我在json_decode($_SESSION['__vm']['vmcart'])处添加true,我会得到警告:为foreach()提供的参数无效

如何解决问题?

附言:我是php的初学者,根本不知道json_。该代码由链接建议:stackoverflow.com/questions/28691203/how-to-move-a-ssingle-product-from-mod-virtualmart-cart

$cart->cartProductsData的行为类似于一个数组,但它实际上是一个对象

试试这个:更改

unset($cart->cartProductsData[$k])

unset($cart->cartProductsData->$k)