Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Foreach Array Objeto

Bom dia pessoal! A minha dúvida é o seguinte. Criei um foreach para acessar os dados abaixo

$token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

    $headers = array('Authorization: Token ' . $token);

    $ch_subs = curl_init();

    curl_setopt($ch_subs, CURLOPT_URL, 'https://dominio.site.com/desenvolvedor/api/eventos/listar');
    curl_setopt($ch_subs, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch_subs, CURLOPT_SSL_VERIFYPEER, false);

    curl_setopt($ch_subs, CURLOPT_HTTPHEADER, $headers);

    $obj_json_trans = json_decode(curl_exec($ch_subs));
{
    "total": 1,

    "eventos": [
        {
            "id": "1",
            "status": "em andamento",
            "titulo": "Evento Demo",
            "descricao": "Apenas um evento de teste",
            "logomarca_hotsite": "http://",
            "logomarca_evento": "http://",
            "data_inicio": "10/02/2018",
            "data_termino": "11/02/2018",
            "participantes": {
                "totais": 10,
                "confirmados": "5",
                "nao_confirmados": "3",
                "desativados": "2"
            },
            "link_hotsite": "http://",
            "link_evento": "http://",
            "link_inscricao": "http://",
        }
    ]
}

$eventos = $obj_json_trans->eventos;            

            foreach ( $eventos as $e )
            {
                echo "id: $e->id - status: $e->status - título: $e->titulo - $e <br>";                 
            }

            curl_close($ch_subs);

Deu certo porém eu gostaria de também pegar os dados desta classe abaixo

"participantes": {
                "totais": 10,
                "confirmados": "5",
                "nao_confirmados": "3",
                "desativados": "2"
            },

dentro do array eventos e não estou conseguindo. Podem me ajudar?

1 resposta
solução!

Oi Leodário, tudo bom?

Como você utilizou o json_decode em objeto (sem o segundo parametro assoc = true), toda a arvore do json estará como objetos do tipo std class. Pra você acessar mais um nivel é só acessar a chave do objeto como propriedade:

foreach ( $eventos as $e )
            {
        echo $e->participantes->totais;
        echo $e->participantes->confirmados;    
        echo $e->participantes->nao_confirmados;    
        echo $e->participantes->desativados;    
                echo "id: $e->id - status: $e->status - título: $e->titulo - $e <br>";                 
            }

Abraço