我遇到了一个 foreach 循环在 while 循环的每个实例中迭代其整个数组内容的问题。
我试过移动循环,添加中断和继续点并使用替代语法——我觉得我只是在这里遗漏了一些小东西。我需要进一步定义数组吗?我是否以某种方式将 foreach 循环集成到 while 中?任何指针将不胜感激。这是代码的基本运行(使用“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 - 重量:12 克
购物车项目 2 - 重量:12 克
这是预期的输出:
购物车项目 1 - 重量:1 克
购物车项目 2 - 重量:2 克
提前致谢!
IH
编辑:
Shopp 中没有关于产品重量的文档,因此我必须找到产品对象和数组,并添加一个 ++ 运算符以在每次迭代时循环它们。这是我使用的代码。
echo $Items[$i++]->option->dimensions['weight'] * shopp('cartitem','quantity', 'echo=false');
在循环外设置整数:$i = 0;