<?php
function totalCreditCost( $amount , $monthlyPayment , $interestRate , $comission , $downpayment ) {
$totalPayments = 0 ;
$debtAmount = $amount + $downpayment ; // сумма вместе с платежом за открытие (???)
while ( $debtAmount > 0 ) {
$debtAmount = $debtAmount * $interestRate + $comission ;
$payment = $debtAmount < $monthlyPayment
? $debtAmount
: $monthlyPayment ; // чтоб не платить больше чем должны.
$debtAmount -= $payment ; // Задолженность по кредиту
$totalPayments += $payment ; // Сумма выплат
}
return $totalPayments ;
}
$banks = [
'first' => array ( 'rate' => 1.04 , 'comission' => 500 , 'downpayment' => 0 ) , 'second' => array ( 'rate' => 1.03 , 'comission' => 1000 , 'downpayment' => 0 ) , 'third' => array ( 'rate' => 1.02 , 'comission' => 0 , 'downpayment' => 7777 ) // Хоть +9000 разных банков, код меняться уже не будет
] ;
$creditCosts = [ ] ;
foreach ( $banks as $name => $params ) {
$creditCosts [ $name ] = totalCreditCost( 40000 ,
5000 ,
$params [ 'rate' ] ,
$params [ 'comission' ] ,
$params [ 'downpayment' ] ) ;
echo "Выплаты в банке $name - " . $creditCosts [ $name ] . "\n " ;
}
echo "Наименьшая сумма - " . min ( $creditCosts ) ; echo " выдаётся " . array_search ( min ( $creditCosts ) , $creditCosts ) . " банком\n " ;
PD9waHAKZXJyb3JfcmVwb3J0aW5nKC0xKTsKCmZ1bmN0aW9uIHRvdGFsQ3JlZGl0Q29zdCgkYW1vdW50LCAkbW9udGhseVBheW1lbnQsICRpbnRlcmVzdFJhdGUsICRjb21pc3Npb24sICRkb3ducGF5bWVudCkgewoJJHRvdGFsUGF5bWVudHMgPSAwOwoJJGRlYnRBbW91bnQgPSAkYW1vdW50ICsgJGRvd25wYXltZW50OyAvLyDRgdGD0LzQvNCwINCy0LzQtdGB0YLQtSDRgSDQv9C70LDRgtC10LbQvtC8INC30LAg0L7RgtC60YDRi9GC0LjQtSAoPz8/KQoJd2hpbGUgKCRkZWJ0QW1vdW50ID4gMCkgewoJCSRkZWJ0QW1vdW50ID0gJGRlYnRBbW91bnQgKiAkaW50ZXJlc3RSYXRlICsgJGNvbWlzc2lvbjsKCQkkcGF5bWVudCA9ICRkZWJ0QW1vdW50IDwgJG1vbnRobHlQYXltZW50IAoJCQkJCT8gJGRlYnRBbW91bnQgCgkJCQkJOiAkbW9udGhseVBheW1lbnQ7IC8vINGH0YLQvtCxINC90LUg0L/Qu9Cw0YLQuNGC0Ywg0LHQvtC70YzRiNC1INGH0LXQvCDQtNC+0LvQttC90YsuCgkJJGRlYnRBbW91bnQgICAgLT0gJHBheW1lbnQ7IC8vINCX0LDQtNC+0LvQttC10L3QvdC+0YHRgtGMINC/0L4g0LrRgNC10LTQuNGC0YMKCQkkdG90YWxQYXltZW50cyArPSAkcGF5bWVudDsgLy8g0KHRg9C80LzQsCDQstGL0L/Qu9Cw0YIKCX0KCXJldHVybiAkdG90YWxQYXltZW50czsKfQoKJGJhbmtzID0gWwoJJ2ZpcnN0JyAgPT4gYXJyYXkoJ3JhdGUnID0+IDEuMDQsICdjb21pc3Npb24nID0+IDUwMCwgICdkb3ducGF5bWVudCcgPT4gMCksCgknc2Vjb25kJyA9PiBhcnJheSgncmF0ZScgPT4gMS4wMywgJ2NvbWlzc2lvbicgPT4gMTAwMCwgJ2Rvd25wYXltZW50JyA9PiAwKSwKCSd0aGlyZCcgID0+IGFycmF5KCdyYXRlJyA9PiAxLjAyLCAnY29taXNzaW9uJyA9PiAwLCAgICAnZG93bnBheW1lbnQnID0+IDc3NzcpCgkvLyDQpdC+0YLRjCArOTAwMCDRgNCw0LfQvdGL0YUg0LHQsNC90LrQvtCyLCDQutC+0LQg0LzQtdC90Y/RgtGM0YHRjyDRg9C20LUg0L3QtSDQsdGD0LTQtdGCCl07CgokY3JlZGl0Q29zdHMgPSBbXTsKZm9yZWFjaCAoJGJhbmtzIGFzICRuYW1lID0+ICRwYXJhbXMpIHsKCSRjcmVkaXRDb3N0c1skbmFtZV0gPSB0b3RhbENyZWRpdENvc3QoICA0MDAwMCwgCgkJCQkJCQkJCQkJNTAwMCwgCgkJCQkJCQkJCQkJJHBhcmFtc1sncmF0ZSddLCAKCQkJCQkJCQkJCQkkcGFyYW1zWydjb21pc3Npb24nXSwgCgkJCQkJCQkJCQkJJHBhcmFtc1snZG93bnBheW1lbnQnXSk7CgllY2hvICLQktGL0L/Qu9Cw0YLRiyDQsiDQsdCw0L3QutC1ICRuYW1lIC0gIiAuICRjcmVkaXRDb3N0c1skbmFtZV0gLiAiXG4iOwp9CgplY2hvICLQndCw0LjQvNC10L3RjNGI0LDRjyDRgdGD0LzQvNCwIC0gIiAuIG1pbigkY3JlZGl0Q29zdHMpOyAKZWNobyAiINCy0YvQtNCw0ZHRgtGB0Y8gIiAuIGFycmF5X3NlYXJjaChtaW4oJGNyZWRpdENvc3RzKSwgJGNyZWRpdENvc3RzKSAuICIg0LHQsNC90LrQvtC8XG4iOwo=