将数组中的产品分类到包中

时间:2011-04-20 22:18:01

标签: php loops

我正在尝试编写一个将产品分类到包中的脚本。我有一个包含长度,宽度,高度和重量的产品($产品)阵列。有三种不同的包,条件将如下所示

small: length <= 17, width <= 14, height <= 4, weight <= 2
medium: length <= 26, width <= 18, height <= 4, weight <= 2
large: length <= 35, width <= 23, height <= 4, weight <= 2

所以现在脚本需要检查所有产品是否足够小,如果不是那么中等,如果不是那么大。如果大到不够,那么我希望脚本检查哪些产品组合最接近大包,然后删除这些元素并继续检查数组中的其余元素并将它们放入适当的包中。简而言之:它应该将产品分成尽可能大的包装而不浪费空间。

我开始制作if语句,以查看订单中产品的总长度和宽度是否适合不同的尺寸,但困难的部分是找到包装的最佳产品组合并将其从数组以保持其余的排序。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

此问题称为Bin Packaging Problem(也称为背包问题)。我找不到任何php示例,所以我认为制作这样的东西有点难......

答案 1 :(得分:0)

之前已经问过这个问题。可以在“3 dimensional bin packing algorithms”和“3d bin packing algorithm”找到一些好的信息。