いくつかの計算では、現在のループの前の値を取得しようとしています。 出発点として、コードの内容を説明します。PHPループ計算で前の値を取得して現在を追加する
- 外部ループは
- $ forecast_correctionは、いくつかの値
アイデアがための基本コストとデフォルト率を持つか月間の予測/予測を行うことであるを補正するためのループである月の名前を生成し、月。
これはループのロジックです。 1月が始まる月、我々はその基盤を$price
に設定しますが、来月(2月)は1月* $default_percent
、 月は2月* $default_percent
などにすべて修正が含まれるはずです。
それは我々が外部ループ月($ mは)他の補正配列$月、デフォルト値に等しい場合に二つの変数
$percentage = (!empty($modified_percentage)) ? $modified_percentage : $default_percent;
$month_cost = $price * $percentage + $correction_cost;
Percentage
を変更することができました修正になります。 Month cost
は基本的な計算です。持っているために、この特定の例では、2月= 1月*パーセントロジックを実装する方法:
+----------+---------------+------------+------------+------------+------------+-------------+-------------+-------------+-------------+------------+------------+
| 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 |
+----------+---------------+------------+------------+------------+------------+-------------+-------------+-------------+-------------+------------+------------+
コードは、質問
<?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
あなたは、将来の明確化が必要な場合は、私はこの1つとはかなりこだわっています、お気軽にお問い合わせください。
MCVEサンドボックス
http://sandbox.onlinephpfunctions.com/code/0c705ab721c6160813b98d133d8a1b7ff876cdca
妥当な数字のように思えますが、もう少しチェックします –
1つのことmetion:最初の月はbase_month_cost +補正でなければなりません。パーセントは最初のループには適用されません。他のすべてはokと思われる –
はい、私は1月のパーセントの問題を見つけたはずです。私はこれを解決するためのいくつかの方法で私の答えを更新しました。 – Clydog