Я построил это, чтобы учесть несколько партий разных значений (вам не нужно это использовать),
<code><?php
$installments = [];
for ($x = 0; $x < 4; $x++) {
$installments[$x]['installment'] = $x + 1;
$installments[$x]['value'] = 15.0;
}
$policy['installment'] = $installments;
$policy['in_full'] = get_in_full($installments);
function get_in_full($installments) {
$total = '1 of $ ' . $installments[0]['value'];
$installmentArray = [];
foreach ($installments as $installment)
{
if ($installment['installment'] != 1) {
$installmentArray[$installment['value']] += 1;
}
}
asort($installmentArray);
foreach ($installmentArray as $value => $numberOfInstallments) {
$total .= ' + ' . $numberOfInstallments . ' installments of $ ' . $value;
}
return $total;
//returns '1 of $ 15.00 + 3 installments of $ 15.00';
}
echo '<pre>';
print_r($policy);
echo '
'; ?>
Добавление,
$installments[4]['installment'] = 5;
$installments[4]['value'] = 20.0;
Дает,
Array
(
[installment] => Array
(
[0] => Array
(
[installment] => 1
[value] => 15
)
[1] => Array
(
[installment] => 2
[value] => 15
)
[2] => Array
(
[installment] => 3
[value] => 15
)
[3] => Array
(
[installment] => 4
[value] => 15
)
[4] => Array
(
[installment] => 5
[value] => 20
)
)
[in_full] => 1 of $ 15 + 1 installments of $ 20 + 3 installments of $ 15
)