【发布时间】:2017-12-05 15:49:56
【问题描述】:
我正在尝试获取当前循环的先前值以进行某些计算。 作为起点,让我们描述一下代码的作用。
- 外循环生成月份名称
- $forecast_correction 是用于更正某些值的循环
我们的想法是对月份进行预测/预测,具有月份的基本成本和默认百分比。
这是循环的逻辑。一月是开始月份,我们在那里设置基数$price,但下个月(二月)应该是一月*$default_percent,
三月应该是二月 * $default_percent 等都应该包括更正。
当涉及到更正时,我们得到了两个变量
$percentage = (!empty($modified_percentage)) ? $modified_percentage : $default_percent;
$month_cost = $price * $percentage + $correction_cost;
Percentage 可以改变,如果外循环月($m) 等于修正数组 $month,否则它的默认值。
Month cost 是一个基本的计算。
+----------+---------------+------------+------------+------------+------------+-------------+-------------+-------------+-------------+------------+------------+
| jan | feb | mar | apr | may | june | july | augu | sept | oct | nov | dece |
+----------+---------------+------------+------------+------------+------------+-------------+-------------+-------------+-------------+------------+------------+
| 41290.65 | 41290.65*1.03 | feb * 1.03 | mar * 1.03 | apr * 1.03 | may * 1.03 | june * 1.03 | july * 1.03 | augu * 1.03 | sept * 1.03 | oct * 1.03 | nov * 1.03 |
+----------+---------------+------------+------------+------------+------------+-------------+-------------+-------------+-------------+------------+------------+
代码sn-p
<?PHP
$forecast_correction = array(
array(
'month' => '2',
'add' => 150.00,
'substract' => 0.00,
'final' => 150.00,
'percent' => 1.02
),
array(
'month' => '3',
'add' => 0.00,
'substract' => 250.00,
'final' => -250.00,
'percent' => NULL
),
array(
'month' => '4',
'add' => 0.00,
'substract' => 0.00,
'final' => 0.00,
'percent' => 0.15
)
);
$price = 41290.65;
$default_percent = 1.03;
for ($m = 1; $m <= 12; ++$m) {
$correction_cost = 0;
$modified_percentage = null;
foreach ($forecast_correction as $correction) {
if ($m == $correction['month']) {
$correction_cost = $correction['final'];
if (!empty($correction['percent'])) {
$modified_percentage = $correction['percent'];
}
}
}
;
$percentage = (!empty($modified_percentage)) ? $modified_percentage : $default_percent;
$month_cost = $price * $percentage + $correction_cost;
echo date('F', mktime(0, 0, 0, $m, 1)) . " :: $month_cost :: " . $correction_cost . " :: " . $percentage . "% \n";
}
问题和期望的输出
问题:如何在此特定示例中实现二月 = 一月 * 百分比逻辑,以使用校正数组正确计算所有结果。
所需的输出(可以是纯文本,也可以是数组。)
Month : Cost
如果您需要进一步澄清,请不要犹豫,我非常坚持这一点。
MCVE 沙盒
http://sandbox.onlinephpfunctions.com/code/0c705ab721c6160813b98d133d8a1b7ff876cdca
【问题讨论】:
标签: php