【发布时间】:2011-08-14 05:34:50
【问题描述】:
我正在尝试编写一个运费计算器,到目前为止做得很好。输入是来自订单的产品数组。我遇到的一个问题是产品列表中的某些产品的数量值大于1。由于计算器使用foreach alot,所以最好将所有产品分开而不是数量值。有没有办法可以复制一个产品条目与数量字段的值一样多,所以我得到一个扩展数组?
【问题讨论】:
-
你能发一些代码吗?
我正在尝试编写一个运费计算器,到目前为止做得很好。输入是来自订单的产品数组。我遇到的一个问题是产品列表中的某些产品的数量值大于1。由于计算器使用foreach alot,所以最好将所有产品分开而不是数量值。有没有办法可以复制一个产品条目与数量字段的值一样多,所以我得到一个扩展数组?
【问题讨论】:
更好的解决方案是使用 for 循环 - 如果您的代码确实需要您迭代 X 次,其中 X 是产品的数量。没有看到代码,我只能猜测您的数据结构的架构,但是这个 sn-p 可能会为您指出正确的解决方案:
foreach ($products as $product) {
$productId = $product["id"];
for ($i = 0; $i < $product["quantity"]; $i++) {
// your code here
}
}
我建议您不要像您在问题中概述的那样处理这个问题。创建一个新数组来模拟 for 循环会做什么会浪费内存和 CPU,而且可扩展性也差很多。
【讨论】:
不看你的代码就很难回答,但是这样做可以吗?
$products = array_merge($products, array_fill(0, $quantity, $product));
【讨论】: