Jump to content
rodrigo antonio  cruz

Buscar resultado específico dentro de um índice, array

Recommended Posts

Olá venho pedir ajuda dos amigos, estou pegando de uma url externa com uma consulta este Array de apenas 1 índice, estou querendo somente extrair deste índice o item resposta : Sim, ou seja somente o resultado da resposta o Sim, mas não estou conseguindo de modo algum, sou novo em php, peço desculpas pela minha ignorância!

Array ( [0] => 0 ) Array ( [0] => {"status":1,"data":1,"doc":[{"codigo":"213645459","dh_entrada":"2017-05-18
10:35:16","status":"RECEBIDO","destino_celular":"51991855248","resposta":"Sim"}]} )

Share this post


Link to post
Share on other sites

O "Sim" é um valor da propriedade "resposta", então você tem que informar essa chave de alguma forma.

 

Como o retorno parece ser em JSON, dá uma olhada no json_decode(), acho que resolve no seu caso.

 

Algo assim (não testei):

 

$json = '{"status":1,"data":1,"doc":[{"codigo":"213645459","dh_entrada":"2017-05-18
10:35:16","status":"RECEBIDO","destino_celular":"51991855248","resposta":"Sim"}]}'

$retorno = json_decode($json);
echo $retorno->doc[0]->resposta;

Dá uma olhada aqui também: http://stackoverflow.com/questions/29308898/how-do-i-extract-data-from-json-with-php

Share this post


Link to post
Share on other sites
Em 2017-5-19 at 14:02, navegantenarede disse:

O "Sim" é um valor da propriedade "resposta", então você tem que informar essa chave de alguma forma.

 

Como o retorno parece ser em JSON, dá uma olhada no json_decode(), acho que resolve no seu caso.

 

Algo assim (não testei):

 


$json = '{"status":1,"data":1,"doc":[{"codigo":"213645459","dh_entrada":"2017-05-18
10:35:16","status":"RECEBIDO","destino_celular":"51991855248","resposta":"Sim"}]}'

$retorno = json_decode($json);
echo $retorno->doc[0]->resposta;

Dá uma olhada aqui também: http://stackoverflow.com/questions/29308898/how-do-i-extract-data-from-json-with-php

 

Olá amigo muito obrigado pela ajuda, mas eis uma  dúvida, e se eu receber um array com vários índices? como ficaria?

por exemplo:

stdClass Object ( [status] => 1 [data] => 2 [doc] => Array ( [0] => stdClass Object ( [codigo] => 213645459 [dh_entrada] => 2017-05-18 10:35:16 [status] => RECEBIDO [destino_celular] => 51991855248 [resposta] => Sim ) [1] => stdClass Object ( [codigo] => 214192762 [dh_entrada] => 2017-05-20 15:11:01 [status] => RECEBIDO [destino_celular] => 51998549737 [resposta] => Nao ) ) )

Tentei fazer um foreach e while, mas não obtive sucesso, desde já agradeço

Share this post


Link to post
Share on other sites
3 horas atrás, rodrigo antonio cruz disse:

 

Olá amigo muito obrigado pela ajuda, mas eis uma  dúvida, e se eu receber um array com vários índices? como ficaria?

por exemplo:


stdClass Object ( [status] => 1 [data] => 2 [doc] => Array ( [0] => stdClass Object ( [codigo] => 213645459 [dh_entrada] => 2017-05-18 10:35:16 [status] => RECEBIDO [destino_celular] => 51991855248 [resposta] => Sim ) [1] => stdClass Object ( [codigo] => 214192762 [dh_entrada] => 2017-05-20 15:11:01 [status] => RECEBIDO [destino_celular] => 51998549737 [resposta] => Nao ) ) )

Tentei fazer um foreach e while, mas não obtive sucesso, desde já agradeço

TÓPICO RESOLVIDO, ESTUDEI UM POUCO E RESOLVI! PRA QUEM PRECISAR O CODE ESTÁ ABAIXO

$retorno = json_decode($json_file);
$i=-1;
     while($i++ <= sizeof($retorno)){
     	   $retorna_data = $retorno->doc[$i]->dh_entrada;
	       $retorna_resposta = $retorno->doc[$i]->resposta;
           $retorna_celular  = $retorno->doc[$i]->destino_celular."<br/>";
     echo $retorna_data;
     echo $retorna_resposta;
     echo $retorna_celular;
}

 

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 georgewar
      Olá. Após alguns anos sem programar em PHP, parece que esse Corona fez algo de útil.
       
      Estou começando um trabalho novo, utilizando o recente CI 4 e me deparei com uma situação que preciso resolver com a ferramenta de language do framework.
       
      na documentação do CI, para implementar a ferramenta de tradução, deve-se guardar diferentes arquivos com os textos. Algo semelhante assim:
       
      /app/Language/en/teste.php
      <?php return [ 'oi' => 'hello', 'casa' => 'house', 'ele' => 'he', ]; Dai, para chamar basta eu fazer:
      echo lang(teste.oi); //printa "Hello" e isso está funcionando O problema que estou querendo mandar para um array TODO o return, que posteriormente vai ser passado para a view. Porém a bagaça não funciona, pois manda apenas parte do conteúdo de return para o array. Alguém sabe como mando esse return para um array? Com file() cria-se um índice inteiro para cada linha. Já com file_get_contents() a código abaixo simplesmente some:
      <?php return [ 'oi'  
    • By Onaita
      Boa noite, preciso de uma ajuda com o código abaixo:
      - Dentro da variável '$dados' tenho uma array em que o id repete com datas diferentes, preciso descartar uma das duas arrays repetidas com o mesmo 'id', mantendo a de menor data, ou seja, o resultado final seria:
      "Array ( [0] => Array ( [id] => 12 [data] => 2020-07-02 ) , [1] => Array ( [id] => 13 [data] => 2020-06-10 ) ) "
      - já tentei de tudo um pouco a princípio estou trabalhando com a ideia de loop dentro de loop, para varrer e comparar, mas como vcs podem ver estou deixando passar alguma coisa;
      <?php
      $dados =     [array("id" =>12, "data"=>"2020-07-02"),
                  array("id" =>13, "data"=>"2020-06-10"),
                  array("id" =>13, "data"=>"2020-06-15"),
                  array("id" =>12, "data"=>"2020-05-12")];
      $total = count($dados);
      foreach($dados as $item){
          for($i=1; $i < $total; $i++){
              if($item['id'] == $dados[$i]['id']){
                  if(strtotime($item['data']) <= strtotime($dados[$i]['data'])){
                      unset($dados[$i]);
                      $dados = array_values($dados);
                      $total = count($dados);
                      
                  }    
              }    
          }    
      }
      print_r($dados);
      Array ( [0] => Array ( [id] => 12 [data] => 2020-07-02 ) ) //resultado
       
      Se alguém achar o erro, ou uma forma de resolver esse problema ficarei muito agradecido!
      Obrigado e Um grande abrs a todos!
    • By unset
      Olá a todos, tenho uma aplicação pequena, que roda normalmente no php5 porém ao mudar a versão do php para 7 a mesma está apresentando a seguinte mensagem de erro
       
      Notice: Trying to access array offset on value of type null in
       
       
      <?php /* * APP CORE CLASS * Creates URL & Loads Core Controller * URL Format - /controller/method/param1/param2 */ class Core { // Set Defaults protected $currentController = 'Pages'; // Default controller protected $currentMethod = 'index'; // Default method protected $params = []; // Set initial empty params array public function __construct(){ $url = $this->getUrl(); // Look in controllers folder for controller if(file_exists('../app/controllers/'.ucwords($url[0]).'.php')){ // If exists, set as controller $this->currentController = ucwords($url[0]); // Unset 0 index unset($url[0]); } // Require the current controller require_once('../app/controllers/' . $this->currentController . '.php'); // Instantiate the current controller $this->currentController = new $this->currentController; // Check if second part of url is set (method) if(isset($url[1])){ // Check if method/function exists in current controller class if(method_exists($this->currentController, $url[1])){ // Set current method if it exsists $this->currentMethod = $url[1]; // Unset 1 index unset($url[1]); } } // Get params - Any values left over in url are params $this->params = $url ? array_values($url) : []; // Call a callback with an array of parameters call_user_func_array([$this->currentController, $this->currentMethod], $this->params); } // Construct URL From $_GET['url'] public function getUrl(){ if(isset($_GET['url'])){ $url = rtrim($_GET['url'], '/'); $url = filter_var($url, FILTER_SANITIZE_URL); $url = explode('/', $url); return $url; } } }  
      Alguém poderia dar uma força ai?
    • By usuario181474618518
      Bom dia a todos! 
       
      Estou iniciando em PHP, então talvez isso seja uma pergunta burra. Estou utilizando uma plataforma que fornece um array de categorias como digitado abaixo, e minha ideia é fazer uma busca no conteúdo por essas categorias, e substituir elas por outro array, que no caso terá as mesmas categorias, no entanto, com links. Veja:
      $conteudo = "Meu conteúdo Filmes Laranja e Verde. Blackout."; $from = array( 0 => "Laranja", 1 => "Azul", 2 => "Vermelho", 3 => "Verde", 4 => "Black" ); $to = array( 0 => "<a href='#laranja'>Laranja</a>", 1 => "<a href='#azul'>Azul</a>", 2 => "<a href='#vermelho'>Vermelho</a>", 3 => "<a href='#verde'>Verde</a>", 4 => "<a href='#ver'>Black</a>" ); $novoconteudo = strtr($conteudo, array_combine($from, $to)); echo $novoconteudo;  
      O máximo que conseguir fazer foi usando strtr, no entanto acaba fazendo algumas substituições "burras", como por exemplo adicionar link em "Black" quando na verdade a palavra é "Blackout". Acredito que para resolver isso, deveria ser feito com preg_replace, porém já tentei e não consegui. Alguém pode me ajudar?
       
      Veja: http://sandbox.onlinephpfunctions.com/code/e7cfd27ea182041de0519df3ed22bedc93cda18b
    • By opl12
      Olá Mestres,
      Não achei um tópico com este assunto
       
      No Código abaixo, eu dou um echo e me retorna o valor de um array,
      *que é o resultado de um SELECT feito no Banco de Dados PhpMyAdmin
      *no banco tenho a tabela LOGIN, com as colunas: Nome, Password, Nivel
       
      no PHP eu carrego as variáveis $nome e $password
      com isso eu faço um select com uma condição na coluna "nivel" .. para me trazer apenas o resultado onde consta a palavra "staff" na coluna "nivel"
       
      ao dar um echo:
      echo $key.": ".$value."<br>";  
      o PHP me retorna:
      nome: jeferson
      password: 123
      nivel: staff
       
      ***a pergunta:
      Tem como eu gravar o resultado da coluna "nivel" ( que neste caso é "staff" ) em uma variável?? ao ponto de dar um echo e aparecer apenas a palavra "staff" ?
       
      Se puderem me ajudar, já agradeço
       
      <!DOCTYPE html> <html lang="pt-br"> <head> <title>Comprovar Usuário</title> <meta charset="utf-8"> </head> <body> <?php $nome = "jeferson"; $password = "123"; try { $base=new PDO("mysql:host=localhost;dbname=painel","root",""); $base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql="SELECT nome, password, nivel FROM login WHERE nome= :nome AND password= :password"; $resultado=$base->prepare($sql); $resultado->bindValue(":nome",$nome); $resultado->bindValue(":password",$password); $resultado->execute(); $result = $resultado->fetch(PDO::FETCH_ASSOC); foreach ($result as $key => $value) { echo $key.": ".$value."<br>"; } }catch(Exception $e) { die("Error" . $e->getMessage()); } ?> </body> </html>  
       
       
       
×

Important Information

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