Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MalCriada

array_merge - foreach duplo

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.