MalCriada 1 Denunciar post Postado Abril 17, 2015 Boa noite, Tenho um código que lê um arquivo de retorno .RET para baixa de boletos pagos. Neste arquivo há dois foreach para duas arrays, o que eu preciso é fazer com que ele se comporte como um único, pois ele está fazendo o loop duas vezes e dessa forma os resultados são exibidos duas vezes cada. Eu preciso apenas listar os resultados de forma única, sem ficar repetindo duas vezes. Eu já tentei array_merge mas não deu certo. Alguém tem alguma sugestão??? obrigada pela atenção! <? while (!feof ($aponta)) { $linha = fgets($aponta, 9999); $linhas['t_u_segmento'] = substr($linha,13,1);//Segmento T ou U if($linhas['t_u_segmento'] == 'T'){ // pega a linha com a letra T $newline[] = explode(" ",$linha); } if($linhas['t_u_segmento'] == 'U'){ // pega a linha com a letra U $newline2[] = explode(" ",$linha); } } foreach ($newline as $v) { $taxaBoleto = formataNumero(substr($v[86], 12,-10)); $buscaNossoNumero = substr($v[1],0,37); $nossonumero = (int) substr($buscaNossoNumero, 22,-6); foreach ($newline2 as $v2) { $u_v_pago = substr($v2[1],77,15); $valorpago = formataNumero($u_v_pago); $i++; if($i % 2 == 0){ $cor = 'style="background:#fff"'; }else{ $cor = 'style="background:#f4f4f4;"'; } echo $nossonumero.'<br>'; echo $valorpago.'<br><br>'; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
jairo denison 0 Denunciar post Postado Abril 18, 2015 eu te aconselho a usar a sintaxe padrão do PHP. Já me deparei com problemas bobos quando usava Short-Tags. Mas se já está acostumada à esta sintaxe veja se a diretriz short_open_tag não desativou por algum motivo! :) Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Abril 18, 2015 Como assim não funcionou? array_merge vai mesclar e criar um novo índice! $merged = array_merge($newline,$newline2); echo '<pre>'; print_r($merged); Compartilhar este post Link para o post Compartilhar em outros sites
MalCriada 1 Denunciar post Postado Abril 18, 2015 Obrigada àqueles que responderam, mas nenhuma sugestão dada pelos colegas acima resolveu o problema. Um amigo já me ajudou a resolver. O código ficou assim: <? while (!feof ($aponta)) { $linha = fgets($aponta, 9999); $linhas['t_u_segmento'] = substr($linha,13,1);//Segmento T ou U if($linhas['t_u_segmento'] == 'T'){ // pega a linha com a letra T $newline[] = explode(" ",$linha); } if($linhas['t_u_segmento'] == 'U'){ // pega a linha com a letra U $newline2[] = explode(" ",$linha); } } $n=-1; foreach ($newline as $v) { $taxaBoleto = formataNumero(substr($v[86], 12,-10)); $buscaNossoNumero = substr($v[1],0,37); $nossonumero = (int) substr($buscaNossoNumero, 22,-6); foreach ($newline2 as $v2) { $u_v_pago = substr($v2[1],77,15); $valorpago[] = formataNumero($u_v_pago); } $n++; $i++; if($i % 2 == 0){ $cor = 'style="background:#fff"'; }else{ $cor = 'style="background:#f4f4f4;"'; } echo $nossonumero.'<br>'; echo $valorpago[$n].'<br><br>'; } ?> Compartilhar este post Link para o post Compartilhar em outros sites