Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde,
Estou com um pequeno problema de sintaxe que ta me deixando muito irritado,
Em determinada parte do sistema, onde faço controle de parcelamentos, eu possuo um código que verifica quantas parcelas estão vencidas, e a data da primeira parcela não paga, para exibir esta data como 'próximo vencimento' mesmo que data ja tenha passado, pois ela ainda não foi paga, o problema é que, eu abro a array das parcelas com um foreach:
<?php
foreach ($parcelas as $parcs_ind) {
$num_parc = $parcs_ind['num_parc'];
$prox_venc = $parcs_ind['data_venc'];
if ($parcs_ind['data_pgto'] === NULL) {
$parcs_data[$i]['parc_atual'] = $num_parc;
$parcs_data[$i]['prox_vnct'] = $prox_venc;
break;
}
}
No caso do exemplo ele deveria fazer o seguinte:
>
Citar
Se não possui data de pagamento, salvar o numero da parcela atual, e o vencimento atual dentro da array, e dar BREAK.
Porém, existe o contador $i que fica após esse foreach, e quando é dado o break, o contator não soma, ficando todos PARCELAMENTOS com o mesmo retorno.
Encontrei um solução temporária que não consegui entender o porque cargas d'agua assim funciona:
<?php
$sql_3 = "SELECT * FROM control_parc_fiscal_parcelas WHERE control_rel = '$control_cod'";
echo $sql_3;
$rs_3 = Components::get_rs_consulta_query($sql_3);
while ($row_3 = mysqli_fetch_array($rs_3)) {
$data_vnct = $row_3['data_venc'];
$num_parc = $row_3['num_parc'];
$data_pgto = $row_3['data_pgto'];
if ($data_pgto == NULL) {
$parcs_data[$i]['parc_atual'] = $num_parc;
$parcs_data[$i]['prox_vnct'] = $data_vnct;
break;
}
}
Porém isso não me serve, pois desse modo é feito mais um consulta e acaba ficando lento pois são muitos dados nessa tabela, e esses dados ja foram passados pra uma array anteriormente.
Minha dúvida é:
>
Citar
Como dar uma espécie de BREAK no FOREACH sem parar o código, como acontece no while ?
OU
>
Citar
Como usar um loop while para abrir uma array multidimensional ?
PS: a array $parcelas ja vem de outra array $emps_data, que por sua vez é um índice.
Carregando comentários...