PHP 带循环计算

PHP with Loop Calculation

能帮忙吗,不知道如何在PHP

中使用循环解决这个问题
$pay = [20, 40 , 89, 300, 190, 15]; <br/>
$Capital = 1000; <br/>

我希望循环实现这个结果

1000-20 = 980 <br/>
980-40 = 940 <br/>
940-89 = 851 <br/>
851-300 = 551 <br/>
551-190 = 361 <br/>
361-15 = 346 <br/>

我的代码是:

$newbal = $Capital-$pay <br/>
for ($amount=$newbal; $amount>=$Capital; $amount-=$pay) {
    echo “{$amount} ”; <br/>
    $amount++; <br/>
}

我的代码给出了这个结果:

1000-20 = 980 <br/>
1000-40 = 960 <br/>
1000-89 = 911 <br/>
1000-300 = 700 <br/>
1000-190 = 810 <br/>
1000-15 = 985 <br/>

下面的代码循环遍历 $pays 整数数组。

每个循环计算 $captial 减去一个整数并重复的方程,这是计算并作为字符串存储在 $lines 变量中,在每个循环结束时我们重新计算$capital 并根据之前 capital = capital - pay

的计算更新 $capital 的新值
<?php
    $pays = [20, 40 , 89, 300, 190, 15];
    $capital = 1000;

    $lines = [];

    foreach($pays as $pay){
        $lines[] = $capital . "-" . $pay . " = " . ($capital - $pay) . "<br/>";
        $capital -= $pay;
    }

    echo implode("\n", $lines);

?>
<?php

$pay = [20, 40 , 89, 300, 190, 15];
$Capital = 1000;

foreach ($pay as $amount) {
    $newCap = $Capital - $amount; // calculate the new amount for output
    echo $Capital . ' - ' . $amount . ' = ' . $newCap . '<br>'; // output it
    $Capital = $newCap; // update the new amount for the next iteration
}

在线演示:https://3v4l.org/qmqcv

与其使用复杂的 for 循环,我建议使用 foreach 循环遍历 $pay 数组并在 [=17] 之后覆盖 $Capital =].

我们可以使用"${}"语法来use variables inside strings


考虑这个例子:

<?php

$pay = [20, 40 , 89, 300, 190, 15];
$Capital = 1000; 
$newBal = $Capital;

foreach ($pay as $amount) {
    
    echo "${Capital} - ${amount} = " . ($Capital - $amount) . PHP_EOL;
    $Capital -= $amount; 
}

这将输出以下内容test in this online demo

1000 - 20 = 980
980 - 40 = 940
940 - 89 = 851
851 - 300 = 551
551 - 190 = 361
361 - 15 = 346

我们可以对 $Capital 进行内联赋值,所以我会读到:

echo "${Capital} - ${amount} = " . ($Capital = $Capital - $amount) . PHP_EOL;

但是为了便于阅读,我会像我的例子一样多加一行。

您有点过于复杂了,您显示的代码产生了错误,而不是您声明的输出。

您可以通过直接使用 foreach 遍历 $pay 数组并每次将余额减少当前付款项中的金额来更简单地实现此目的:

$pay = [20, 40 , 89, 300, 190, 15];
$capital = 1000;
$balance = $capital;
    
foreach ($pay as $item)
{
  $output = $balance."-".$item." = ";
  $balance -= $item;
  $output .= $balance;
  echo $output.PHP_EOL;
}

工作演示:http://sandbox.onlinephpfunctions.com/code/dd1189f2d48b3428986ce52a087fb425ee970621

使用 $balance 变量对 $pay 数组进行简单的 foreach 循环将允许在循环内进行简单的计算:

$pay = [20, 40 , 89, 300, 190, 15];
$Capital = 1000; 

$balance = $Capital;
foreach ($pay as $p) {
    printf("%d - %d = %d\n", $balance, $p, $balance = $balance - $p);
}                                          ########################

输出:

1000 - 20 = 980
980 - 40 = 940
940 - 89 = 851
851 - 300 = 551
551 - 190 = 361
361 - 15 = 346