我正在查看一些成本信息,我需要一种显示所有组合的好方法。我不确定我是否必须使用嵌套foreach
循环或其他东西。
我有 25 种不同的物品。项目 1 -项目 2 ..项目 25
我有 6 个螺栓用于构建我的物品。bolt1 - bolt2 - bolt3 - bolt4 - bolt5 - bolt6每个螺栓都有不同的成本。
所有物品只能使用一种螺栓。不是混合物,例如螺栓 1 的 3 和螺栓 2 的 3。
- 25 个项目中有 7 个需要 6 个螺栓。
- 其余 6 个需要 5 个螺栓。
- 其余 3 个需要 4 个螺栓。
- 其余 5 个需要 3 个螺栓。
- 其余 3 个需要 2 个螺栓。
- 最后 1 个需要 1 个螺栓。
这就是棘手的地方。
每件带有螺栓数量的物品都需要 4 个配件包中的一个,这些配件包的价格不同。
acc1 - acc2 - acc3 - acc4
每个项目还需要 4 个盒子填充器之一。每个,都有不同的成本
填充器 1 -填充器 3 -填充器 3 -填充器 4
最后,每个项目都需要 3 个包装器之一。每个,都有不同的成本。
包装器1 -包装器2 -包装器3
例如,我需要 PHP 给我所有可能的价格组合。
foreach 6 bolt item{
(6 bolt1 * $cost) + ($acc1Cost + $stuffer1Cost + $wrapper1Cost) = item1acc1stff1wra1COST
(6 bolt1 * $cost) + ($acc2Cost + $stuffer1Cost + $wrapper1Cost) = item1acc2stff1wra1COST
(6 bolt1 * $cost) + ($acc3Cost + $stuffer1Cost + $wrapper1Cost) ..
(6 bolt1 * $cost) + ($acc4Cost + $stuffer1Cost + $wrapper1Cost) ..
(6 bolt1 * $cost) + ($acc1Cost + $stuffer2Cost + $wrapper1Cost) ..
(6 bolt1 * $cost) + ($acc1Cost + $stuffer3Cost + $wrapper1Cost)
(6 bolt1 * $cost) + ($acc1Cost + $stuffer4Cost + $wrapper1Cost)
(6 bolt1 * $cost) + ($acc1Cost + $stuffer1Cost + $wrapper2Cost)
(6 bolt1 * $cost) + ($acc1Cost + $stuffer1Cost + $wrapper3Cost)
(6 bolt2 * $cost) + ($acc1Cost + $stuffer1Cost + $wrapper3Cost)
(6 bolt2 * $cost) + ($acc1Cost + $stuffer1Cost + $wrapper3Cost)
..... all combinations
foreach 5 bolt item{
(5 bolts * $cost) + (**$acc1Cost** + **$stuffer1Cost** **$wrapper1Cost**)
(5 bolts * $cost) + (**$acc2Cost** + **$stuffer1Cost** **$wrapper1Cost**)
(5 bolts * $cost) + (**$acc3Cost** + **$stuffer1Cost** **$wrapper1Cost**)
(5 bolts * $cost) + (**$acc4Cost** + **$stuffer1Cost** **$wrapper1Cost**)
..so on to the end..
}
每种类型的项目都被分类到不同的数组中,这些数组除以它们需要多少个螺栓。
$oneBolt = array(
bolt1 => cost,
...
);
其他每个项目组都保存在各自的价格数组中。
我意识到我可以像上面一样写出所有组合,但是如何使用循环来做到这一点?以一种或另一种方式做到这一点是否明智?PHP 有这样的内置函数吗?请,您可以提供的任何见解都将受到赞赏。我应该这样做吗?