php - 使用 PHP 和 MySQL 进行订单优化

标签 php mysql

我有一个 MySQL 表,其中包含可用于包装配置的产品,例如:

SKU   PACK
xyz     25
abc    250

用户可以选择他们想要的商品数量(以 25 的倍数为单位)。我希望能够使用尽可能大的包装来填写订单。例如,如果用户想要 275 种产品,那么我会用 1 个 abc sku 和 1 个 xyz sku 填写订单。如果用户想要 225 种产品,那么我会用 9 xyz 填写订单。

我在处理问题时遇到问题,正在寻找有关方法的建议。伪代码或 PHP 会很棒。

最佳答案

这是经典的变体 bin packing problem .维基百科文章提供了很多关于所有变体的技术背景,但这是一个相当简单的变体。以下可能是一个不错的方法:

  1. 检索按包装大小降序排列的所有可能包装配置的数组。
  2. 遍历包装尺寸列表。
  3. 从元素数量中减去当前包装尺寸的整数倍,直到元素数量小于包装尺寸。计算该包装尺寸所需的数量。
  4. 当您到达列表的末尾时,其余的应该进入最小的包。

关于php - 使用 PHP 和 MySQL 进行订单优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8513681/

相关文章:

mysql - 在行和列中获取相似的值?

php - MYSQL SELECT JOIN 带条件

Mysql 重复行(忽略 id + 时间戳)而不命名查询中的所有其他列?

php - 如何在mysql中获取字符串作为日期?

php - 如何通过上传将文件名存储到mysql

php - PHP 中的内联 elseif

php - Laravel 框架对于中型项目是否足够稳定,还是我应该坚持使用更稳定的 Yii?

php - 我的 php 文件的 json 结果包含整数,但我需要所有值作为字符串

php 好友表

php - 在php中递归搜索所有目录中的字符串数组