2011-09-02 39 views
0

我有一个问题,我自己挖掘。我有有,他们将适合什么类型的箱子一个领域的项目清单PHP数组分组/条件可能吗?

例如:

item | boxtype | Quantity 
------------------------------- 
item1 | A-10,C-20 | 3 
item2 | C-10,D-20 | 2 

在boxtype列的字母是箱型,后面的数是多少项目可以适应它。

我想弄清楚如何使用最少量的盒子。我最初只是将数量除以字母数字,如果它在1以下,我就使用了这个盒子。

但是对于像上面这样的情况,我会在item1上使用方框A,在item2上我将不得不使用C.最好使用方框C作为两个项目,因为这两个项目都适合。

当然,这只是该问题的简化版本,如果需要的话,我可以用更多定义的示例来阐述。我只是想知道我可以做所有的数组排序吗?

感谢在正确的方向

EDIT任何点 - 加入该阵列中,从该阵列中,有一种简单的方式测试该字母的条件以确定哪些类型的框应当使用?

Array 
    (
     [AC] => Array 
      (
       [A] => 0.75 
       [C] => 0.15 
      ) 

     [CD] => Array 
      (
       [C] => 0.2 
       [D] => 0.1 
      ) 
    ) 
+0

这真的不是很清楚。 –

+1

所以你基本上需要一个算法,将选择完美的盒子?如果只有少数物品选择最小的箱子,如果有很多,选择最合适的箱子(对于所有物品来说足够大)。我对么? –

+0

排序,这个想法是去与最小的盒子和最少的盒子。我遇到的问题是有很多项目。其中一个很简单,2个不相关的盒子类型很简单,但是当多个项目有1个相似的盒子类型和1个不同的盒子并试图弄清楚盒子变得复杂时。 –

回答

1

听起来像1D /线性bin packing problem。我没有看到它与特定语言(PHP)或功能(数组)有什么关系。对于这些,请拿出一个更具体的例子(例如:我如何在PHP中对此数组进行排序?​​)。对于前者,根本不要指定一种语言,只关注算法。

+0

我看到,当搜索和完全傻眼如何甚至开始使这项工作:) –

+0

我可以发布一个完整的项目,箱子类型,适合每个盒子和数量的项目数量,但数组可以建立我有很多不同的方式,我不确定我是否应该发布一个。 –

+1

+1用于识别它是NP完全问题。 – razzed