我有一个基本对象(贷款)和2个辅助对象必须以正确的顺序迭代。这2个辅助对象是(强制付款)和(延期)。 所有对象都来自DataBase,这2个辅助对象具有字段" startDate"日期时间类型。
我需要使用我的主对象Loan在for循环中进行计算,并在每次迭代时将Loan $ date变量更改一个月,并在每次迭代时检查修改日期是否等于Forced Payment或Deferral startDate ,用次要对象开始一些计算,然后返回主Loan for循环,然后继续。
因此,为了继续解决这个算法,我需要通过" startDate"对这两个对象进行排序。字段,然后从这个对象生成一个按日期排序的数组,如果修改后的贷款日期等于此数组的任何日期,将在每次迭代时检查。
这2个对象的var_dumo如何:
Forced Payments :
array(1) { [0]=> array(5) { ["id"]=> int(101010109) ["startDate"]=> object(DateTime)#566 (3) { ["date"]=> string(26) "2000-04-30 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(15) "Europe/Helsinki" } ["value"]=> float(343) ["rate"]=> float(3) ["duration"]=> int(10) } }
Deferrals :
array(1) { [0]=> array(4) { ["id"]=> int(1) ["type"]=> int(0) ["startDate"]=> object(DateTime)#572 (3) { ["date"]=> string(26) "2001-08-31 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(15) "Europe/Helsinki" } ["endDate"]=> int(14) } }
这是我的循环,除了一些想法外,它不会给你任何东西。 我想将已排序的Array Result放在循环中的某个位置。检查修改日期是否等于数组结果中的日期(我在此问题中询问)。如果是,请启动一些新计算,然后返回并继续算法。
for ($i = 0; $i < $duration; $i++){
$interest = $capital * ($rate / 100) / $frequency;
array_push($allInterests,$interest);
array_push($allPayments,$payment);
$amortization = $payment - $interest;
$remaining = $capital - $amortization;
//calculate totals for table headers output in Twig :
$interestTotal += $interest; $amortizationTotal += $amortization;
$inverseCapital = $capital * -1;
$paymentTotal = $amortizationTotal + $interestTotal;
$this->array[$i] = array(
'Date' => $date->format('d/m/Y'),
'Capital' => $capital,
'Rate' => $rate,
'Interest' => $interest,
'Payment' => $payment,
'Amortization' => $amortization,
'Remaining' => $remaining,
'InterestTotal' => $interestTotal,
'AmortizationTotal' => $amortizationTotal,
'PaymentTotal' => $paymentTotal,
'InverseCapital' => $inverseCapital,
);
$capital = $remaining;
$M = 12/$frequency;
$months = (12/$frequency). ' months';
$this->dateCalculator($date, $day, $M, $case);
}