<?php 
 
function  gerarParcelas( $dataInicial ,  $intervalos ,  $valorTotal )  { 
    $datasParcelas  =  [ ] ; 
    $quantidadeParcelas  =  count ( $intervalos ) ;      $valorParcela  =  $valorTotal  /  $quantidadeParcelas ; 
 
    foreach  ( $intervalos  as  $dias )  { 
        $dataVencimento  =  clone $dataInicial ; 
        $dataVencimento -> modify ( "+{$dias}  days" ) ; 
        $datasParcelas [ ]  =  [ 
            'data_vencimento'  =>  $dataVencimento , 
            'valor_parcela'  =>  $valorParcela 
        ] ; 
    } 
 
    return  $datasParcelas ; 
} 
 
// Exemplo de uso 
$dataInicial  =  new  DateTime( '2024-07-06' ) ; 
$intervalos  =  [ 28 ,  42 ,  56 ] ; 
$valorTotal  =  1000.00 ; 
 
$parcelas  =  gerarParcelas( $dataInicial ,  $intervalos ,  $valorTotal ) ; 
 
foreach  ( $parcelas  as  $parcela )  { 
    echo  "Data de Vencimento: "  .  $parcela [ 'data_vencimento' ] -> format ( 'Y-m-d' )  .  PHP_EOL; 
    echo  "Valor da Parcela: R$ "  .  number_format ( $parcela [ 'valor_parcela' ] ,  2 ,  ',' ,  '.' )  .  PHP_EOL
;      echo  "-----------------------"  .  PHP_EOL; 
} 
 
PD9waHAKCmZ1bmN0aW9uIGdlcmFyUGFyY2VsYXMoJGRhdGFJbmljaWFsLCAkaW50ZXJ2YWxvcywgJHZhbG9yVG90YWwpIHsKICAgICRkYXRhc1BhcmNlbGFzID0gW107CiAgICAkcXVhbnRpZGFkZVBhcmNlbGFzID0gY291bnQoJGludGVydmFsb3MpOwogICAgJHZhbG9yUGFyY2VsYSA9ICR2YWxvclRvdGFsIC8gJHF1YW50aWRhZGVQYXJjZWxhczsKCiAgICBmb3JlYWNoICgkaW50ZXJ2YWxvcyBhcyAkZGlhcykgewogICAgICAgICRkYXRhVmVuY2ltZW50byA9IGNsb25lICRkYXRhSW5pY2lhbDsKICAgICAgICAkZGF0YVZlbmNpbWVudG8tPm1vZGlmeSgiK3skZGlhc30gZGF5cyIpOwogICAgICAgICRkYXRhc1BhcmNlbGFzW10gPSBbCiAgICAgICAgICAgICdkYXRhX3ZlbmNpbWVudG8nID0+ICRkYXRhVmVuY2ltZW50bywKICAgICAgICAgICAgJ3ZhbG9yX3BhcmNlbGEnID0+ICR2YWxvclBhcmNlbGEKICAgICAgICBdOwogICAgfQoKICAgIHJldHVybiAkZGF0YXNQYXJjZWxhczsKfQoKLy8gRXhlbXBsbyBkZSB1c28KJGRhdGFJbmljaWFsID0gbmV3IERhdGVUaW1lKCcyMDI0LTA3LTA2Jyk7CiRpbnRlcnZhbG9zID0gWzI4LCA0MiwgNTZdOwokdmFsb3JUb3RhbCA9IDEwMDAuMDA7CgokcGFyY2VsYXMgPSBnZXJhclBhcmNlbGFzKCRkYXRhSW5pY2lhbCwgJGludGVydmFsb3MsICR2YWxvclRvdGFsKTsKCmZvcmVhY2ggKCRwYXJjZWxhcyBhcyAkcGFyY2VsYSkgewogICAgZWNobyAiRGF0YSBkZSBWZW5jaW1lbnRvOiAiIC4gJHBhcmNlbGFbJ2RhdGFfdmVuY2ltZW50byddLT5mb3JtYXQoJ1ktbS1kJykgLiBQSFBfRU9MOwogICAgZWNobyAiVmFsb3IgZGEgUGFyY2VsYTogUiQgIiAuIG51bWJlcl9mb3JtYXQoJHBhcmNlbGFbJ3ZhbG9yX3BhcmNlbGEnXSwgMiwgJywnLCAnLicpIC4gUEhQX0VPTDsKICAgIGVjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAuIFBIUF9FT0w7Cn0K