我遇到一个foreach循环问题,在while循环的每个实例中迭代它的整个数组内容。
我试过移动循环,添加了break&继续点和使用替代语法 - 我觉得我只是在这里缺少一些小东西。我是否需要进一步定义数组?我会以某种方式将foreach循环整合到一起吗?任何指针都将非常感激。以下是代码的基本版本(使用“Shopp”电子商务插件,代码示例如下: https://shopplugin.net/api/shopp_cart_items/):
<?php while(shopp('cart','items')): // initializes the shopping cart loop
$Items = shopp_cart_items();
foreach ( $Items as $item ):
echo $item->quantity * $item->weight; // multiplies weight by quantity
endforeach; echo 'g'; endwhile; ?>
产品以重量来衡量,例如,购物车中有2件物品,重量分别为1克和2克。
以下是当前的输出:
购物车项目1 - 重量:12g
购物车项目2 - 重量:12克
这是预期的输出:
购物车项目1 - 重量:1g
购物车项目2 - 重量:2克
提前致谢!
IH
修改
Shopp中没有关于产品重量的文档,因此我必须找到产品对象和数组,并添加一个++运算符,以便在每次迭代时循环使用它们。这是我使用的代码。
echo $ Items [$ i ++] - &gt; option-&gt; dimensions ['weight'] * shopp('cartitem','quantity','echo = false');
在循环外设置整数:$ i = 0;
答案 0 :(得分:0)
echo $item->quantity * $item->weight; // multiplies weight by quantity
可能不正确地返回,但可能就像
一样简单echo ($item->quantity * $item->weight);
我还建议使用除Item之外的东西$ item $ Item和$ items让人感到很困惑。
答案 1 :(得分:0)
另一种方法
$product_id = shopp('cartitem.get-product');
$weight = shopp('product.get-weight'); // use product tag to get weight
$quantity = shopp('cartitem.get-quantity'); // use cart-item tag to get quantity
echo $weight * $quantity .' g';