首页 > 解决方案 > PHP:找到“最合适的”

问题描述

我需要$quantities适应,$sections所以没有留下任何数量。

此外, product_id 1不能与product_id 2在同一部分中。

$quantities体积总和总是等于或小于$sections体积总和。

$sectionsand数组当前$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
        ),
    );

标签: phpalgorithmsorting

解决方案


推荐阅读