Ir para conteúdo

Arquivado

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

Francisco Jr.

Problemas ao Iterar array multidimensional

Recommended Posts

Olá!
Estou enfrentando problemas para iterar um array multidimensional.
O array possui uma estrutura assim: $meuArray['cliente']['tipoAtendimento']['subtipo'].

Array
(
[CLIENTE 1] => Array
(
[TIPO ATENDIMENTO 1] => Array
(
[OUTROS] => 14
[ELETRONICO] => 13
[TECNICO] => 21
[RRD] => 14
[TELEFONICO] => 15
)

[TIPO ATENDIMENTO 2] => Array
(
[PESSOAL] => 17
[TELEFONE] => 1373
)

)
[CLIENTE 2] => Array
(
[TIPO ATENDIMENTO 1] => Array
(
[OUTROS] => 14
[ELETRONICO] => 13
[TECNICO] => 21
[RRD] => 14
[TELEFONICO] => 15
)

[TIPO ATENDIMENTO 2] => Array
(
[PESSOAL] => 17
[TELEFONE] => 1373
)

)
)
Preciso iterar e inserir os dados em uma tabela desta forma:

<table align="center" border="1" cellpadding="1" cellspacing="1" style="background-color:#ffffcc;border-collapse:collapse;border:1px solid #ffcc00;width:50%;">
<thead>
<th width="105"><b class="fontcorpreta">Cliente</b></th>
<th width="100"><b class="fontcorpreta">Tipo Atend.</b></th>
<th width="100"><b class="fontcorpreta">Forma Atend.</b></th>
</thead> <tbody> <tr> <td colspan="1" rowspan="9">$meuArray['cliente']</td> <td colspan="1" rowspan="2" style="text-align: center; vertical-align: middle;">$meuArray['cliente']['tipoAtendimento']</td> <td>$meuArray['cliente']['tipoAtendimento']['subtipo']</td> </tr> <tr> <td>$meuArray['cliente']['tipoAtendimento']['subtipo']</td> </tr> <tr> <td colspan="1" rowspan="7" style="text-align: center; vertical-align: middle;">$meuArray['cliente']['tipoAtendimento']</td> <td>$meuArray['cliente']['tipoAtendimento']['subtipo']</td> </tr> <tr> <td>$meuArray['cliente']['tipoAtendimento']['subtipo']</td> </tr> <tr> <td>$meuArray['cliente']['tipoAtendimento']['subtipo']</td> </tr> <tr> <td>$meuArray['cliente']['tipoAtendimento']['subtipo']</td> </tr> <tr> <td>$meuArray['cliente']['tipoAtendimento']['subtipo']</td> </tr> <tr> <td>$meuArray['cliente']['tipoAtendimento']['subtipo']</td> </tr> <tr> <td>$meuArray['cliente']['tipoAtendimento']['subtipo']</td> </tr> </tbody> </table>

Segue uma imagem de como eu preciso estruturar a tabela: https://jsfiddle.net/fininhors/05L6k5fz/
Tentei iterar deste jeito mas não deu certo:

<table class="estilo_tabela marginauto">
	<thead>
		<tr>
			<th width="105"><b class="fontcorpreta">Cliente</b></th>
			<th width="100"><b class="fontcorpreta">Tipo Atend.</b></th>
			<th width="100"><b class="fontcorpreta">Forma Atend.</b></th>
			<th width="45"><b class="fontcorpreta">Parciais</b></th>
			<th width="45"><b class="fontcorpreta">Total</b></th>
		</tr>
		<tr>
			<td colspan="5"><hr width="100%"></td>
		</tr>
	</thead>	
	<tbody>
	<?php foreach ((array)$_SESSION['SA_RELATORIO_RANKING'] as $cliente => $tipoAtend) {														
			foreach ((array)$tipoAtend as $tipo => $subTipo) {
				foreach ((array)$subTipo as $chave => $valor) {	?>
					<tr>
						<td colspan="1" rowspan="9"><?php echo $cliente;?></td>																
						<td colspan="1" rowspan="2" style="text-align: center; vertical-align: middle;"><?php echo $tipo; ?></td>																
						<td><?php echo $_SESSION['SA_RELATORIO_RANKING'][$cliente][RA][RA-PESSOAL] ?></td>
					</tr>
					<tr>
						<td><?php echo $_SESSION['SA_RELATORIO_RANKING'][$cliente][RA][RA-TELEFONE] ?></td>
					</tr>
					<tr>
						<td colspan="1" rowspan="7" style="text-align: center; vertical-align: middle;"><?php echo $tipo; ?></td>
						<td><?php echo $chave; ?></td>
					</tr>
					<tr>
						<td><?php echo $chave; ?></td>
					</tr>
					<tr>
						<td><?php echo $chave; ?></td>
					</tr>
					<tr>
						<td><?php echo $chave; ?></td>
					</tr>
					<tr>
						<td><?php echo $chave; ?></td>
					</tr>
					<tr>
						<td><?php echo $chave; ?></td>
					</tr>
					<tr>
						<td><?php echo $chave; ?></td>
					</tr>
				<?php } 
				}?>												
  <?php } ?>
	</tbody>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

    • Por Giovanird
      Listo um array pelo foreach e preciso pegar os valores fora do foreach.
      Abaixo tenho o exemplo do foreach com os valores
       
      <?php foreach($turma $rsturma): if(($rsturma['id'] == 1){ echo $rsturma['nome']."<br>"; echo $rsturma['idade']."<br><br>"; } endforeach; //Dentro do foreach me retorna: Luis 13 Maria 12 Carlos 12 Matheus 14 Andréa 12 //Preciso pegar a posição e o valor desta lista $posicao1 = 1; $nome1 = Luis; $posicao2 = 2; $nome2 = Maria; $posicao3 = 3; $nome3 = Carlos; $posicao4 = 4; $nome4 = Matheus; $posicao5 = 5; $nome5 = Andréa;  
×

Informação importante

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