Jump to content
jose_

Arrays aninhados

Recommended Posts

Galera! sou novo em php e no fórum , estou com um código onde tenho dois arrays, o primeiro é só para nomes e o segundo com os atributos  de cada nome(entidade) minha dúvida é como faço para o segundo array vir abaixo de cada nome, sei que dava pra fazer isso no mesmo array, mas..  o código é só um exemplo, pois tenho um problema parecido para resolver, porém puxando de duas tabelas do sql server 2008, meu código de exemplo segue abaixo.
 

<pre>
    <?php
/*nomes
$a = array(

       'fulano',
       '    sicrano',
       '    beltrano'
);

/*atributos*/
$b = array(
     
     'idade' => 26,
     'altura' => 1.70,
     'peso' => 60
);


foreach($a as $v){
    echo "{$v}";
}

?>
</pre>

 

Edited by Gabriel Heming
adicionar marcação de código

Share this post


Link to post
Share on other sites
20 horas atrás, wootzor disse:

Não está claro o que pretendes. Tens três nomes no primeiro array, mas apenas um conjunto de atributos.

Eu entendo, fiz dessa forma porque achei que ficaria mais didático para entender minha dúvida, da forma que está ali, irá repetir os atributos para cada nome, não tem problema, como tinha dito é apenas um exemplo, o que eu quero é que na exibição, abaixo de cada nome, saia os atributos, mas não sei como fazer.

exemplo:

 fulano

     idade => 26
     altura => 1.70
     peso => 60
 sicrano

    idade => 26
     altura => 1.70
     peso => 60
 beltrano

    idade => 26
     altura => 1.70
     peso => 60

 

Share this post


Link to post
Share on other sites
Em 30/01/2018 at 13:57, jose_ disse:

[...]o que eu quero é que na exibição, abaixo de cada nome, saia os atributos, mas não sei como fazer[...]

 

De onde você está recuperando o nome e os atributos? Isso irá definir como poderá prosseguir.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Jeová Oliveira dos Santos
      Preciso de ajuda.
      Tenho uma tabela de vencimentos de um vetor
      Ex.
      Tenho um variável que armazena a minha quantidade de parcelas $qtdeparcela informada pelo usuário em um form html.
      Tenho uma outra que vem com o dia de vencimento $diavenc=12 e outra com o mês de vencimento $mesvenc=9, preciso por no vetor assim
      vetor[0]=parcela 1 = o $mesvenc (que seria igual a 9 por exemplo) + 1 - ou seja seria 12/10
      vetor[1]=parcela2 = 12/11
      vetor[2]=parcela 3 = 12/12
      vetor[3]=parcela 4 = 12/01
      E assim por diante até findar as posições do vetor, mais não estou sabendo por dentro do vetor as posições infomada na variável $qtdeparcela.
      Se eu tenho $qtdeparcela = 5 o vetor deveria ficar com 5 posições.
      O código abaixo é como foi feito e não acerto.
      index.html <!DOCTYPE html> <html> <head> <title>Empréstimo Pessoal - TrustBank Investimentos</title> <meta charset="utf-8"/> <style> </style> </head> <body> <img src="img/bank.pnj.psd" /> <p>Procurando por um parceiro de confiança? O TrustBank Investimentos é a solução.</p> <form name="calculo" method="get" action="financiamento.php"> Nome do Cliente <input type="text" name="nome" required /><br> CPF <input type="number" name="CPF" required/><br> Dia do Vencimento para pagamento do Financiamento <input type="number" name="diavenc" min="1" max="28" required /><br> Mês do Vencimento para pagamento do Financiamento <input type="number" name="mesvenc" min="1" max="12" required/><br> Valor do Empréstimo solicitado pelo Cliente <input type="number" name="vlremprestimo" min="0,01" max="999999,99" required /><br> Quantidade de Prestações para o financiamento <input type="number" name="qtdeparcela" min="1" max="60" required/><br> Taxa de Juros <input type="number" name="taxa" required /><br> <input type="submit" value="Calcular" /> <input type="reset" value="Limpar" /> </form> </body> </html> financiamento.php <?php $nome=$_GET["nome"]; $cpf=$_GET["CPF"]; $diavenc=$_GET["diavenc"]; $mesvenc=$_GET["mesvenc"]; $vlremprestimo=$_GET["vlremprestimo"]; $qtdeparcela=$_GET["qtdeparcela"]; $taxa=$_GET["taxa"]; $taxa=$taxa/100; $coeficiente=$taxa/(1-(1+$taxa)**-$qtdeparcela); $vlrprestacao=$vlremprestimo*$coeficiente; $vlrfinal=$vlrprestacao*$qtdeparcela; $juros=$vlrfinal-$vlremprestimo; echo"<p> Resumo da Operação do Cliente </p>"; echo "<p> Nome: ".$nome."</p>"; echo "<p> CPF: ".$cpf."</p>"; echo "<p> Valor do Empréstimo: R$ ".number_format($vlremprestimo,2,',','.')."</p>"; echo "<p> Taxa do Empréstimo: ".$taxa."% </p>"; echo "<p> Valor do Juros: R$ ".number_format($juros,2,',','.')."</p>"; $vetor = array(); ?> <table border="1"> <tr> <th>Vencimento</th> <th>Nº de prestações</th> <th>Prestação</th> <th>Acumulado</th> </tr> <?php for ($i=0; $i < $qtdeparcela; $i++) {?> <tr> <td><?php echo $diavenc."/".$arr[]=$i; ?></td> <?php ?> <td></td> <?php ?> <td></td> <?php ?> <td></td> <?php }?> </tr> </table>  
    • By Jeovane Carvalho
      Olá pessoal, estou precisando de um help !
       
      Pois eu tenho uma classe assim:
       
      DadosComboClasse.php
       
      class DadosComboCidades { private $conecta_banco; public function __construct(){ $this->conecta_banco= new Conexao(); $this->conecta_banco->Conectar(); } public $array = array(); public $imoveis_tipo; public $cidade; public $bairro; public $bairro_id2; public $idcidade; public $negocios; public $qtd; public $bairro_id; public $id_cidade; public $id_tipo; public $id_bairro; public $nome_empresa_2; public $nome_empresa_3; public $nome_empresa_4; public $nome_empresa_5; public $titulo_cadastro; public $creci; public $facebook; public $twitter; public $linha_b; public $sloga; public $site; public $sqlT_1; public $sqlT_2; public $sqlT_3; public $sqlT_4; public $row; public $id='1'; function BuscarCidades(){ $result=$this->conecta_banco->banco; $pega_cidade=new ComboCidades();=> instancio os ids ou arrays quando são requisitados tipo assim : finalidade ID:1 Tipo ID:3,9 (array) $pega_cidade->PegarCidadeId(); $ativo='1'; ARRAYS ABAIXO: $this->id_negocio=$pega_cidade->id_negocio; $this->id_tipo=$this->id_cidade=$pega_cidade->id_tipo; $this->id_cidade=$pega_cidade->id_cidade; Acima eu pego os dados do array vindo da pagina combo_cidades.php if($pega_cidade->id_negocio): $negocio_array = explode(",",$pega_cidade->id_negocio); if($pega_cidade->id_tipo): $tipos_array = explode(",", $pega_cidade->id_tipo); if($pega_cidade->id_cidade): $cidades_array = explode(",", $pega_cidade->id_cidade); foreach($negocio_array as $negocio): foreach($tipos_array as $tipos): foreach($cidades_array as $cidades): $sqlT_1 = $result->prepare("SELECT i.id,t.tipo_nome,c.cidade,b.bairro,i.ativo FROM imoveis i LEFT JOIN imoveis_tipo t ON (t.id = i.id_tipo_imovel) LEFT JOIN cidades c ON (c.id = i.id_cidade)LEFT JOIN bairros b ON (b.id = i.bairro) WHERE i.id_tipo_imovel IN ('".$tipos."') AND i.id_cidade IN ('".$cidades."') AND i.ativo=? ORDER BY i.bairro DESC"); $sqlT_1->bind_param('s',$ativo); $sqlT_1->execute(); $this->sqlT_1=$sqlT_1->get_result(); Acima com get_result eu gero os dados que preciso do array abaixo são outras chamadas do sql que vou implementar na solução acima $sqlT_2=$result->prepare("SELECT id, bairro,ativo FROM bairros WHERE id AND ativo=? ORDER BY bairro"); $sqlT_2->bind_param('s',$ativo); $sqlT_2->execute(); $this->sqlT_2=$sqlT_2->get_result(); "'%".$negocio."%'"; $where = " i.ativo =? "; if( $negocio) { $where .="AND i.id_negocio_tipo LIKE ?"; }if( $tipos ) { $where .=" AND i.id_tipo_imovel IN ('".$tipos."')"; } if( $cidades ) { $where .=" AND i.id_cidade IN ('".$cidades."')"; } if($this->bairro_id2) { $where .=" AND i.bairro IN ('".$this->bairro_id2."')"; } $sqlT_3 = $result->prepare("SELECT i.id,i.ativo,n.tipo,b.bairro,t.tipo_nome,c.cidade,i.id_negocio_tipo, COUNT(b.bairro) AS Qtd FROM imoveis i LEFT JOIN negocio_tipo n ON (n.id= i.id_negocio_tipo) LEFT JOIN imoveis_tipo t ON (t.id = i.id_tipo_imovel) LEFT JOIN cidades c ON (c.id = i.id_cidade) LEFT JOIN bairros b ON (b.id = i.bairro) WHERE ".$where." GROUP BY b.bairro HAVING COUNT( b.bairro) > 0 ORDER BY b.bairro "); //EXECUTA A QUERY $conta=$sqlT_3->num_rows(); $sqlT_3->bind_param('ss',$ativo,$negocio); $sqlT_3->execute(); $this->sqlT_3=$sqlT_3->get_result(); endforeach; endforeach; endforeach; endif; endif; endif; } }  
       
      Abaixo a classe combocidades.php
       
      require_once("tags2.php"); //RECEBE PARÃMETRO class ComboCidades{ private $conecta_banco; public function __construct(){ $this->conecta_banco= new Conexao(); $this->conecta_banco->Conectar(); } public $id_negocio; public $id_tipo; public $busca_cidade; public $id_cidade; public function PegarCidadeId(){ function filter( $str ){ return addslashes( $str ); } function getPost( $key ){ return isset( $_GET[ $key ] ) ? filter( $_GET[ $key ] ) : null; } $this->id_negocio = getPost('id_negocio'); $this->id_tipo = getPost('id_tipo'); $this->id_cidade=getPost('id_cidade'); } } class ExibirBairros extends DadosComboCidades{ public function Mostrar(){ extract( $_GET, EXTR_OVERWRITE); $busca_bairro=new DadosComboCidades(); $busca_bairro->BuscarCidades(); $busca_bairro->id_cidade; if($busca_bairro->id_cidade==0): echo "<div class='atencao'></div><div class='atencao_text'>Selecione uma Cidade para pesquisar por Bairros !</div> "."<br />"; endif; echo "<div class='sel'></div>"."<br />"; /* MONTA CRITERIOS DE BUSCA */ //QUERY echo '<br /><div class="botao-modal"><button type="button" class="botao_marcar" title="Todos" id="todos" onclick="marcardesmarcar();">Selecionar Todos</button> </div>'; Aqui onde chamo os array já convertidos pelo foreach na classe DadosComboCidades.php echo'<br /><br /><div style=" font-weight:bold; margin-left:30px;">'.$busca_bairro->imoveis_tipo.' (s) </div>'; echo'<br /><br /><div style=" font-weight:bold; margin-left:30px;">'.$busca_bairro->cidade.'</div>'; echo'<div class="form_modal"><form name="form1">'.'<br /><br />'; echo '<input type="checkbox" id="c'.$bairro.'" class="marcar" value="'.$bairro_id.'" name="bairro[]"/><label for="c'.$bairro_id.'"><span></span></label> '.$bairro.' - '.$cidade.' ('.$qtd.') <br />'; //FECHA IF (row) //PRINTA O RESULTADO if($bairro_id): echo FALSE; else: echo "<div class='atencao'></div><div class='atencao_text'>Não existem imóveis para essa Busca !</div> "."<br />"; echo'</form></div></b><br />'; endif; } } Abaixo onde istancio e chamo a classe DadosComboCidades $f=new ExibirBairros(); $f->Mostrar(); RESUMINDO:
       
      O que acontece é que eu não consigo pegar o array no seu índice, ou seja , por exemplo se o id tipo for ID: 1 rola beleza a busca  e a impressão dos dados mas se eu for buscar 2 informações no mesmo id tipo , assim => ID: array(5,9) , na outra página só consigo pegar o último id em vez de buscar 5,9 só busca o 9, por eu estar acessando o array de outra página , e pelo que entendi , acessando o array de outra página ele só percorre o último em vez do índice.
      Mas se eu jogar todo código dentro da classe ai roda beleza , mas não quero misturar objeto com html (isso é má prática na programação), por isso estou remodelando meu código em POO
      Se alguém tiver uma solução eu agradeço  .  :)
    • By Leandro Volanick
      Boa tarde pessoal.
       
      Gostaria de uma ajuda em uma consulta sql, onde quero agrupar os todos produtos comprados pelo mesmo CPF, dentro de uma array. 
       
      Segue o que estou usando:
      $data=mysqli_query($mysqli, "SELECT xml.id, xml.xProd as produto, prod.id as iddoproduto, GROUP_CONCAT( prod.xProd ) FROM produtos AS prod LEFT JOIN xml as xml ON xml.xProd = prod.xProd GROUP BY xml.CPFdest"); while($info=mysqli_fetch_array($data)) echo '['.$info['iddoproduto'].'],'; No momento, o codigo está trazendo apenas 1 produto, quero que ele printe todos produtos que o CPFdest já comprou.
       
       
    • By Claudio r Martinez
      Olá amigos, estou sempre navegando pelo forum e sempre encontro a resposta para o que preciso, mas dessa vez não encontrei e estou aqui pedindo um Help.
      Tenho um script em Asp Classico para pagamentos em cartão de crédito.
      no carrinho o usuário pode colocar varios cursos, sendo que cada um tem um limite de parcelas sem juros diferente ou não.
      Sendo assim, precisava encontrar uma forma de encontrar os arrays que tem o mesmo valor para fazer a cobrança noi cartão juntos.
      o sistema fará uma, duas ou mais cobranças diferentes no cartão conforme o numero de parcelas.
      Ex:
      parcelas(1) = 3
      parcelas(2) = 6
      parcelas(3) = 5
      parcelas(4) = 3
       
      preciso montar uma forma de saber quais parcelas são iguais para somar o valor e fazer uma cobrança só com esse numero de parcelas.
      OBS: com essas variaveis acima, o sistema faria 3 cobranças no cartão do cliente, 1 cobrança do valor somado dos itens que tem 3 parcelas selecionadas, 1 cobrança do valor do item que tem 6 parcelas selecionadas e 1 cobrança do item que tem 5 parcelas selecionadas.
      Vocês podem dar um HELP???
    • By Jéssica Nascimento
      document.getElementById("submit").addEventListener("click", searchPokem);   let text = document.getElementById("search").value;   function searchPokemon (text){ for (name of pokemon.name){ console.log(name) } }     PS.: Meu banco de dados tem um let POKEMON com um objeto pokemon que é representado com uma array,  dentro tem todos os tipos de pokemons e suas descrições quero filtrar apenas do name.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.