【问题标题】:PHP array grouping/conditionals is it possible?PHP数组分组/条件是可能的吗?
【发布时间】:2011-09-02 14:21:28
【问题描述】:

我遇到了一些问题。我有一个项目列表,其中有一个字段说明它们可以放入什么类型的盒子。

例如:

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

boxtype-column中的字母是box类型,后面的数字是可以装多少个item。

我想弄清楚如何使用最少的盒子。我最初只是将数量除以字母编号,如果小于 1,我使用那个框。

但在上述情况下,我将使用 Box A 放置 item1,而在 item2 上我必须使用 C。最好将 box C 用于两个项目,因为这两个项目都适合。

当然,这只是问题的简化版本,如果需要,我可以用更明确的示例进行详细说明。我只是想知道我可以使用数组进行所有排序吗?

感谢您在正确方向上的任何一点

编辑 - 从这个数组中添加这个数组,是否有一种简单的方法可以测试字母的条件以确定应该使用哪种盒子类型?

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

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

【问题讨论】:

  • 这个真的一点都不清楚。
  • 所以你基本上需要一个算法来挑选完美的盒子?如果只有少量物品,请选择最小的盒子,如果有很多,请选择最合适的盒子(对于所有物品来说都足够大)。我说的对吗?
  • 有点,想法是用最小的盒子和最少的盒子。我遇到的问题是当有很多项目时。只有一个很简单,2 个不相关的盒子类型很简单,但是当多个项目具有 1 个相似的盒子类型和 1 个不同的盒子类型并试图找出哪些盒子变得复杂时。
  • 所以你不仅有很多物品,你还把这些物品混合在一个盒子里?假设有 2 个项目 1、1 个项目 2 和 3 个项目 3,哪个盒子对所有这些都足够大。我说的对吗?
  • 是的,一件物品可以装进多个盒子里,而且同一个盒子里可以放不止一件不同的物品。我所拥有的是适合特定盒子的物品的数量,但我没有所述物品的尺寸或盒子的尺寸。如果我有这些东西,那么我可以算出立方英寸来得到一个很好的猜测。

标签: php arrays loops


【解决方案1】:

听起来像一维/线性bin packing problem。我看不出它与特定语言(PHP)或功能(数组)有什么关系。对于那些,请提出一个更具体的例子(例如:如何在 PHP 中对这个数组进行排序?array(blah => blah))。对于前者,完全不指定语言,专注于算法。

【讨论】:

  • 我在搜索时看到了这一点,我完全不知道如何开始让它工作:)
  • 我可以发布一个完整的项目数组、盒子类型、适合每个盒子的项目数量和数量,但是该数组可以以多种不同的方式构建,我不确定是否应该发布一。
  • @Sam Simpson:我也是(目瞪口呆)。但这对于一个人第一次接触一个新话题来说是正常的。专注于算法。使用一种语言来实现这些算法,不要拘泥于琐碎的限制或功能。
猜你喜欢
  • 2023-03-11
  • 2012-06-12
  • 1970-01-01
  • 1970-01-01
  • 2019-10-27
  • 1970-01-01
  • 2021-02-12
  • 2018-01-05
  • 1970-01-01
相关资源
最近更新 更多