Ir para conteúdo
juniorppp

Juntar os dados do json assim fazendo um array completo

Recommended Posts

Boa noite, sera que alguem consegue me ajudar tenho um array que retorna a seguinte

json
https://www.lojadapadroeira.com.br/buscaCpf.json

na parte de cadastro->dados_pessoais

tem varios dados esão quase iguais so que uns tem uns dados e outros não, eu queria gerar apenas um com a junção de todos os dados

ex.

"dados_pessoais": [{"nome": "TAINARA TAVARES DE ABREU","nome_mae": "CATIA MARIA DE MORAES TAVARES","nascimento": "13/01/1989","sexo": "F","estado_civil": "","escolaridade": "Ensino Medio completo.","nacionalidade": "Brasileira","ctps_numero": "51056","ctps_serie": "314","ctps_ano_emissao": "2005","pis": "129.06951.23-6"}]

desde já muito obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!
segue sugestão:

<?php
  $content = file_get_contents('https://www.lojadapadroeira.com.br/buscaCpf.json');

  $json = json_decode($content);

  $unified = (array)array_shift($json->cadastro->dados_pessoais);

  foreach ($json->cadastro->dados_pessoais as $array) {
    foreach ($array as $k => $v)
      if (empty($unified[$k])) {
        $unified[$k] = $v;
      }
  }

  $json->cadastro->dados_pessoais = $unified;

  echo '<pre>';
  print_r($json);
  echo '</pre>';

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@juniorppp, joia!

Esse retorno de json, me parece não ser a melhor forma de apresentar as informações, o ideia seria trata-lo para trazer apenas um array com as informações.
Caso não seja possível corrigir esse buscaCpf.json, e respondendo a sua pergunta:


Uma forma de se fazer, é percorrer a lista de arrays, fazendo um merge em outro array vazio, criando  então um novo array de uma dimensão:
 

$dados = suaFuncaoParaPegarOsDados();
$arrays = json_decode($dados, true)['cadastro']['dados_pessoais'];

$dados = [];
foreach ($arrays as $array) {
    $dados = array_merge(
        $dados, array_filter($array)
    );
}

print_r($dados);

Array
(
    [nome] => TAINARA TAVARES DE ABREU
    [nome_mae] => CATIA MARIA DE MORAES TAVARES
    [nascimento] => 13/01/1989
    [sexo] => F
    [ctps_numero] => 51056
    [ctps_serie] => 314
    [ctps_ano_emissao] => 2005
    [pis] => 129.06951.23-6
    [escolaridade] => Ensino Medio completo.
    [nacionalidade] => Brasileira
)

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

a forma que tinha feito pararesolver como não tenho acesso ao banco para formatar melhor o json foi

 

$teste = array();
                for($i=0; $i < count($array_entrada); $i++){
                    foreach(array_keys($array_entrada[0]) as $chave){
                        $teste[$chave] == "" ? $teste = array_merge($teste, array("$chave"=>$array_entrada[$i][$chave])) : "";
                    }
                    
                }
                $array_saida[] = $teste;

Mais muito obrigado pela ajuda, vou usar a sua forma washalbano, pois todas as chaves devem permanecer.

Muito obrigado galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Claudia França
      Pessoal estou com um problema para homologar um pagamento service.
       o resultado do Status deve ser sucessfull.
      Parte do codido do index.
      "

          $('#payButton').one('click', function(){
              var amount = $('input[name=amount]').val();
              var currency = $('[name=currency]').val();
              console.log(amount, currency);
              V.init( {
                  apikey: '<?php echo $visaApiKey ?>',
                  settings: {
                      //logoUrl: 'https://www.novachance.org.br/wp-content/uploads/2018/06/xLogo_INC.jpg.pagespeed.ic.QrM-Azm3n5.jpg',
                      locale: 'en_US',
                      displayName: 'Viva a Musica',
                      websiteUrl: 'https://www.vivaamusica.org.br',
                      customerSupportUrl: 'https://www.vivaamusica.org.br/contato',
                      dataLevel: 'FULL'
                  },
                  paymentRequest: {
                      currencyCode: currency,
                      total: amount,
                      merchantRequestId: 'you can send any value to API ang get it in callback',
                      orderId: 'you can send any value to API ang get it in callback',
                      description: 'any order description if needs'
                  }
              });
                V.on('payment.success', function(payment) {
                  console.log('Visa success:', JSON.stringify(payment));
                  $('#succesOverlay').show();
                  $.ajax({
                      type: 'POST',
                      url: 'mailer.php',
                      data: {json: JSON.stringify(payment)},
                      dataType: 'json',
                      success: function(data){
                        console.log('Ajax success');
                        console.log(data);
                        location = 'thanks.php';
                      },
                      error: function(jqXHR, textStatus, errorThrown) {
                        console.log('Ajax error:');
                        console.log(textStatus, errorThrown);
                      }
                  });
              });
              V.on('payment.cancel', function(payment){
                  console.log('Canceled:', payment);
              });
              V.on('payment.error', function(payment, error){
                  console.log('Visa error:', payment, error);
              });
              $('.v-button').click();
          })
       
      "
       Chamada Json
       
      "
      "Customer": {
              "Name": "[$userFullName]"
          },
          "Payment": {
              "ServiceTaxAmount": 0,
              "Installments": 1,
              "Interest": 0,
              "Capture": false,
              "Authenticate": false,
              "Recurrent": false,
              "CreditCard": {
                  "CardNumber": "453211******1521",
                  "Holder": "Gama Gama",
                  "ExpirationDate": "08/2020",
                  "SaveCard": false,
                  "Brand": "Visa"
              },
              "Tid": "0319040817883",
              "ProofOfSale": "817883",
              "AuthorizationCode": "027795",
              "Wallet": {
                  "Type": "VisaCheckout",
                  "WalletKey": "1140814777695873901",
                  "Eci": 0
                  },
              
              "SoftDescriptor": "123456789ABCD",
              "Amount": 100,
              "ReceivedDate": "2018-03-19 16:08:16",
              "Status": "eventStatus",
              "IsSplitted": false,
              "ReturnMessage": "Operation Successful",
              "ReturnCode": "4",
              "PaymentId": "e57b09eb-475b-44b6-ac71-01b9b82f2491",
              "Type": "CreditCard",
              "Currency": "BRL","en_US",
              "Country": "BRA","USA",
              
              
          
      "updateInfo":  {
               "payInfo": {
               "reason": "Pagamento","Payment",
               "avsResponseCode": "Y",
               "Amount": 91.00,
               "currencyCode": "USD",
               "eventStatus": "Success",
               "eventType": "Authorize",
               "PaymentId": "e57b09eb-475b-44b6-ac71-01b9b82f2491",
              
               }
      }
           
            }
      }
      {
       
       
      "
       
       
      O pessoal da empresa me fala que tenho que enviar o CallID gerado ( não sei como faço isso) e fazer a chamado do alteração de evento quando a transação for sucesso.
       
      Pensei em criar um aquivo payment.php mas pelo que li no manual necessariamente, não eh necessário.
       
    • Por edison.silva
      Pessoal, alguem tem algum exemplo em php de geração do arquivo .TXT2 da NFe ou MDFe e o envio para API de rotas dele?
    • Por eduuh1524
      Olá.
      Boa noite a todos,eu preciso de uma ajuda.
      Eu tenho um projeto em PHP e MySQL
      Tem uma database chamada easy e a uma tabela chamada usuários
      E dentro da tabela tem usuário,senha, saldo
       
      Bem.
      Eu tenho um random resultados em duas form na (resultados.php)eu queria fazer que quando a pessoa clicasse no botão Gerar usasse o saldo e gerasse o resultado.
      Exemplo,a pessoa já começa com 1000 de saldo e o botão diminui esse saldo em 100 e quando esse saldo chegasse em 0 se tentasse usar dá um erro de saldo insuficiente.
      Como posso fazer isso?
      Dei uma olhada em uns artigos aqui mas estou meio confuso,sou iniciante em PHP mas tenho uma noçãozinha .
      Boa noite a todos.
       
    • Por rd111072
      Olá, moçada!

      Tenho esse gráfico aqui: http://riocir.com.br/renan/chart_barg_g2.php 
      Mas ele exibe só os dias da semana do mês 1. Queria que ele exibisse todos os dias de todos os meses (como é o resultado do echo).

      Segue o código. Alguém pode me ajudar?
       
       
    • Por capaldi
      <?php
      if(isset($_GET['deletar']) && $_GET['deletar'] == 'sim'):
          $id_produto = (int)$_GET['produto'];
          $pegar_dados_produto = BD::conn()->prepare("SELECT img_padrao FROM loja_produtos WHERE id = ?");
          $pegar_dados_produto->execute(array($idProduto));
          $dadosProd = $pegar_dados_produto->fetchObject();
          
          $verificar_imagens = BD::conn()->prepare("SELECT * FROM loja_imgprod WHERE id_produto = ?");
          $verificar_imagens->execute(Array($idProduto));
          
          if($verificar_imagens->rowCount() == 0){
              if(unlink('../../produtos/'.$dadosProd->img_padrao)){
                  $deletar_produto =BD::conn()->prepare("DELETE FROM loja_produtos WHERE id = ?");
                  if($deletar_produto->execute(array($IdProduto))){
                      echo'<script>alert("Produto excluido com sucesso!");location.href"index.php?pagina=editarProdutos</script>';    
                  }
                  
              }
              
          }else{
              while($dadosImagenm = $verificar_imagens->fetchObject()){
                  unlink('../../produtos/'.$dadosImagem->img);
              }
              if(unlik('../../produtos/'.$dadosProd->img_padrao)){
                  $deletar_produto = BD::conn()->prepare("DELETE FROM loja_produtos WHERE id = ?");
                  if($deletar_produto->execute(array($idproduto))){
                      echo'<script>alert("Produto excluido com sucesso!");location.href"index.php?pagina=editarProdutos</script>';
                  }
              }
          }
      endif;
      ?>
       
      Ola, estou tabalhando com esse script, e não consigo resolver esse problema alguém pose me ajudar?
×

Informação importante

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