Php 如何仅从给定数字的用户输入创建数组列表

Php 如何仅从给定数字的用户输入创建数组列表,php,Php,我要说的是 $box=[1,2,3,6] 我想要什么? 用户输入的$n应该等于新数组的array_和,因为它应该只通过$box数组中的给定数字来完成 注意:该数字可以重复。 首先应该取较大的数字 这里是相同的输入/操作 如果用户输入$n=9 创建一个新数组,比如$parcel=[6,3] 如果用户输入$n=18 创建一个新数组,比如$parcel=[6,6,6] 如果用户输入$n=21 创建一个新数组,比如$parcel=[6,6,6,3] 如果用户输入$n=3 创建一个新数组,比如$parce

我要说的是

$box=[1,2,3,6]

我想要什么? 用户输入的$n应该等于新数组的array_和,因为它应该只通过$box数组中的给定数字来完成

注意:该数字可以重复。 首先应该取较大的数字

这里是相同的输入/操作 如果用户输入$n=9 创建一个新数组,比如$parcel=[6,3]

如果用户输入$n=18 创建一个新数组,比如$parcel=[6,6,6]

如果用户输入$n=21 创建一个新数组,比如$parcel=[6,6,6,3]

如果用户输入$n=3 创建一个新数组,比如$parcel=[3]

如果用户输入$n=5 创建一个新数组,比如$parcel=[3,2]

我试过什么

error_reporting();
$n = 7;
$box = [6, 3, 2, 1];
$parcel = [];
if (in_array($n, $box)) {
    $j = array_search($n, $box);
    array_push($parcel, $box[$j]);

} else {

    function myfunction($num)
    {
        foreach ($GLOBALS['box'] as $bob) {
            if (array_sum($GLOBALS['parcel']) !== $GLOBALS['n']) {
                return array_push($GLOBALS['parcel'], $bob);
            }

        }

    }

    array_map("myfunction", $box);

}
print_r($parcel);
//print_r($new);


欢迎您享受编码

6+1=7为什么这是9的输出?到目前为止你自己有没有努力过?“为什么要垃圾邮件?”佩伦诺雷兹抱歉我编辑了它,@尼格伦我已经编辑和粘贴了我的代码,我在这里道歉,我能理解PHP,C++或PY-只是想要逻辑,我不知道为什么人们会投票否决这个,这不是垃圾邮件问题。这听起来像是我的家庭作业。这就是说,您需要做的是回顾您的需求,找出一个算法,通过方框,从输入值中减去方框值,并确定数字是正、零还是负。如果得到的数字是正数,那么把它推到包裹上,再进行一个循环,如果是负数,则转到方框中的下一个项目,重复减法,如果是零,则将该数字作为包裹中的最后一个数字。非常感谢你,伙计,我想了很长的代码,你做得这么短,我非常感谢你,伙计。从2天开始搜索-再次感谢您。
    <?php 
        function SplitPackages ($items, $packages = array()) {
            rsort($packages);
            $packs = array();
            foreach ($packages as $box) {
                if ($items >= $box) {
                    while ($items >= $box ) {
                        $items = $items - $box;
                        $packs[] = $box;
                    }
                }
            }
            return $packs;
        }

        $items = 90;
        $packages = [6, 3, 2, 1];   
        $packs = SplitPackages ($items, $packages);
        print_r(packs);   
        // Is this what you need?
    ?>