json_decode,array和foreach的错误

时间:2015-03-06 09:39:03

标签: php arrays json foreach

我将此代码用于Virtuemart:

$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中添加true($ _ SESSION [' __ vm' ] [' vmcart'])我收到警告:为foreach()提供的参数无效

如何解决问题?

P.S。我是php的初学者,根本不知道json_。代码由链接建议:stackoverflow.com/questions/28691203/how-to-remove-a-single-product-from-mod-virtuemart-cart

1 个答案:

答案 0 :(得分:1)

$cart->cartProductsData表现得像一个数组,但它实际上是一个对象

试试这个: 变化

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

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