$buy_amount = 50;
$amount[0] = 100;
$amount[1] = 150;
$amount[2] = 50;
$test;
$i = $buy_amount;
$arrlength = count($amount);
for ($x = 0; $x < $arrlength; $x++) {
$test = $amount[$x] - $i;
if ($amount[$x] != $test) {
$i = $test;
echo $test;
echo '<br/>';
}
}
我需要做的是,如果我发送$buy_amount = 50
结果需要像这样减
例:
$amount[0] = 50;
$amount[1] = 150;
$amount[2] = 50;
如果我发送$buy_amount = 150
结果需要像这样减去
例:
$amount[0] = 0;
$amount[1] = 100;
$amount[2] = 50;
在这里,我需要做的是首先从第一个元素中减去并转到其他元素并从中微妙地处理,如果buy_amount
留下更多,则转到其他元素,例如明智的
我认为这就是你要找的
$amount[0] = 100;
$amount[1] = 150;
$amount[2] = 50;
$buy_amount = 250; // Change to whatever you want
$amount = array_map(
function ($mValue) use (&$buy_amount)
{
if($buy_amount >= $mValue){
$buy_amount = $buy_amount - $mValue;
return 0;
}
$sReturnValue = $mValue - $buy_amount;
$buy_amount = 0;
return $sReturnValue;
}
,$amount);
var_dump($amount);