我在下面列出了一系列项目
array (
[0] => array(
'order' => 'order001',
'qty' => 90
),
[1] => array(
'order' => 'order002',
'qty' => 100
)
)
我还有一个从上面的列表中取出的数量(Q),数组必须从上到下循环,甚至不跳过单个项目。
循环将遍历第一项以查看它是否可以获得所请求的总数,如果第一个循环不能满足总数,那么它将返回从第一个项目存储到某处然后移动的总数(T)到数组中的下一个项目,使用一个新值,让它说(QT)并查看是否可以在下一个项目中找到数量。
现在问题是我实际上无法弄清楚如何保持并将数组作为列表返回,如下例所示。
假设我需要总共120个。
Array(
Array(
'order' => 'order001',
'qty' => 90
),
Array(
'order' => 'order002',
'qty' => 30
)
);
答案 0 :(得分:-1)
也许是这样的? 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);