【问题标题】:PHP - How to duplicate products in a product list array depending on quantity valuePHP - 如何根据数量值在产品列表数组中复制产品
【发布时间】:2011-08-14 05:34:50
【问题描述】:

我正在尝试编写一个运费计算器,到目前为止做得很好。输入是来自订单的产品数组。我遇到的一个问题是产品列表中的某些产品的数量值大于1。由于计算器使用foreach alot,所以最好将所有产品分开而不是数量值。有没有办法可以复制一个产品条目与数量字段的值一样多,所以我得到一个扩展数组?

【问题讨论】:

  • 你能发一些代码吗?

标签: php arrays


【解决方案1】:

更好的解决方案是使用 for 循环 - 如果您的代码确实需要您迭代 X 次,其中 X 是产品的数量。没有看到代码,我只能猜测您的数据结构的架构,但是这个 sn-p 可能会为您指出正确的解决方案:

foreach ($products as $product) {
    $productId = $product["id"];
    for ($i = 0; $i < $product["quantity"]; $i++) {
        // your code here
    }
}

我建议您不要像您在问题中概述的那样处理这个问题。创建一个新数组来模拟 for 循环会做什么会浪费内存和 CPU,而且可扩展性也差很多。

【讨论】:

  • 简直太美了!我仍然是 php 的新手,我从未想过 for 循环,但它当然是完美的解决方案。你也猜对了数据结构,但我会记住在未来发布一个代码示例。谢谢!
【解决方案2】:

不看你的代码就很难回答,但是这样做可以吗?

$products = array_merge($products, array_fill(0, $quantity, $product));

【讨论】:

    猜你喜欢
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多