php - PHP:找到“最合适的”
问题描述
我需要$quantities
适应,$sections
所以没有留下任何数量。
此外, product_id 1不能与product_id 2在同一部分中。
$quantities
体积总和总是等于或小于$sections
体积总和。
$sections
and数组当前$quantities
按体积从低到高排序。但是,如果您的解决方案需要更改,则可以更改。
我试过一次用一个数量循环每个部分,但这会导致第一个数量进入前 4 个部分,因此部分数量为 14000,但其中的数量为 13000。
$quantities = array(
0 => array(
'volume' => '13000',
'product_id' => '2'
),
1 => array(
'volume' => '24000',
'product_id' => '1'
)
);
$sections = array(
44 => array(
'id' => '44',
'volume' => '2000.00'
),
41 => array(
'id' => '41',
'volume' => '3000.00'
),
45 => array(
'id' => '45',
'volume' => '4000.00'
),
46 => array(
'id' => '46',
'volume' => '5000.00'
),
48 => array(
'id' => '48',
'volume' => '5000.00'
),
42 => array(
'id' => '42',
'volume' => '5000.00'
),
43 => array(
'id' => '43',
'volume' => '6000.00'
),
47 => array(
'id' => '47',
'volume' => '7000.00'
)
);
例如,输出应如下所示:
$output = array(
0 => array(
'section_id' => 43,
'volume' => 6000,
'product_id' => 2
),
1 => array(
'section_id' => 47,
'volume' => 7000,
'product_id' => 2
),
2 => array(
'section_id' => '44',
'volume' => 2000,
'product_id' => 1
),
3 => array(
'section_id' => '41',
'volume' => 3000,
'product_id' => 1
),
4 => array(
'section_id' => '45',
'volume' => 4000,
'product_id' => 1
),
5 => array(
'section_id' => '46',
'volume' => 5000,
'product_id' => 1
),
6 => array(
'section_id' => '48',
'volume' => 5000,
'product_id' => 1
),
7 => array(
'section_id' => '42',
'volume' => 5000,
'product_id' => 1
),
);
解决方案
推荐阅读
- google-classroom - Google App 脚本 - 课堂 - 复制课程
- pyside6 - PySide6如何编译uic
- python - 是否可以通过 pom 为 python 生成 gRPC 类?
- c - 内存分配有问题,分段错误
- shadow-dom - 能够在 Monaco Editor 中不使用 ShadowDOM
- node.js - 如何在节点js中获取嵌套数据
- python - 可以在没有循环的情况下生成 AR(1) 过程吗?
- android - 清除 ViewModel 抛出 IllegalArgumentException
- javascript - 如何不使用javascript在输入值中打印html标签和css?
- c++ - Qt QWidget/QDialog 窗口在 Linux 上创建后移动了一段时间