繁体   English   中英

PHP数组循环和创建多维数组

[英]PHP Arrays looping and creating multi dimensional arrays

我在下面列出了一系列物品

array (
        [0] => array(
            'order' => 'order001', 
            'qty' => 90 
        ), 
        [1] => array(
            'order' => 'order002', 
            'qty' => 100 
        ) 
    )

我也有一个要从上面的列表中获取的quantity(Q),并且数组必须从上到下循环,甚至不跳过任何一项。

该循环将遍历第一个项目,以查看是否可以获取请求的总数,如果第一个循环不能满足总数,则它将返回从第一个项目获得的total(T)并将其存储在某个地方,然后移至下一个数组中的项目具有新值,可以说它的(QT),看是否可以在下一个项目中找到数量。

现在的问题是,我无法真正弄清楚如何保留并像下面的情况一样将数组作为列表返回。

可以说我总共需要120。

Array(
        Array(
            'order' => 'order001',
            'qty' => 90
            ),
        Array(
            'order' => 'order002',
            'qty' => 30
        )
    );

也许是这样的吗? https://iconoun.com/demo/temp_tonywiz.php

 <?php // demo/temp_tonywiz.php /** * Working with arrays * * https://stackoverflow.com/questions/45264342/php-arrays-looping-and-creating-multi-dimensional-arrays */ error_reporting(E_ALL); echo '<pre>'; $qty = 120; $arr = [ ['order' => 'order001', 'qty' => 90], ['order' => 'order002', 'qty' => 100] ]; $out = []; foreach ($arr as $sub) { if ($qty <= 0) break; if ($sub['qty'] <= $qty) { $out[] = $sub; $qty = $qty - $sub['qty']; } else { $sub['qty'] = $qty; $out[] = $sub; } } print_r($arr); print_r($out); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM