Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, beleza?
estou com um problema... tenho uma requisição json, ou seja um api... que encontra-se assim: (exemplo)
{"4460961":[{"name":"Urgot's Shadowdancers","tier":"SILVER","queue":"RANKED_SOLO_5x5","entries":[{"playerOrTeamId":"4460961","playerOrTeamName":"Bonbonha","division":"IV","leaguePoints":3,"wins":90,"losses":83,"isHotStreak":false,"isVeteran":false,"isFreshBlood":false,"isInactive":false}]},{"name":"Jax's Crusaders","tier":"SILVER","queue":"RANKED_FLEX_SR","entries":[{"playerOrTeamId":"4460961","playerOrTeamName":"Bonbonha","division":"V","leaguePoints":62,"wins":69,"losses":68,"isHotStreak":false,"isVeteran":false,"isFreshBlood":false,"isInactive":false}]}]}
Como podem ver, os índices se repetem... ou seja estão com os índices duplicados e os valores estão diferentes de cada um...
gostaria de separa-los, então utilizei:
foreach($obj2 as $key => $value){
$tier = $value[0]['tier'];
$rank = $value[0]['division'];
}
o único erro retornado é: **Notice**: Undefined index: **division** ... mas o** division** está definido na API ...
não sei oque fazer, e não sei porque não está reconhecendo o indice => "division" ... mas o indice => "tier" está funcionando normal...
Espero que ajudem-me...
Agradeço desde já!>
1 hora atrás, washalbano disse:
Olá!
Aparentemente o index 'division' está dentro de entries:
[4460961] => Array
(
[0] => stdClass Object
(
[name] => Urgot's Shadowdancers
[tier] => SILVER
[queue] => RANKED_SOLO_5x5
[entries] => Array
(
[0] => stdClass Object
(
[playerOrTeamId] => 4460961
[playerOrTeamName] => Bonbonha
[division] => IV
[leaguePoints] => 3
[wins] => 90
[losses] => 83
[isHotStreak] =>
[isVeteran] =>
[isFreshBlood] =>
[isInactive] =>
)
)
)
[1] => stdClass Object
(
[name] => Jax's Crusaders
[tier] => SILVER
[queue] => RANKED_FLEX_SR
[entries] => Array
(
[0] => stdClass Object
(
[playerOrTeamId] => 4460961
[playerOrTeamName] => Bonbonha
[division] => V
[leaguePoints] => 62
[wins] => 69
[losses] => 68
[isHotStreak] =>
[isVeteran] =>
[isFreshBlood] =>
[isInactive] =>
)
)
)
)
Creio que você poderá alcançá-lo assim:
$tier = $value[0]->tier;
$division = $value[0]->entries[0]->division;
Obrigado amigo, deu certo!!!
att.Mas amigo me deparei com mais um problema....
eu utilizo para buscar os valores o "foreach($obj2 as $key => $value)" .... até ai tudo bem... mas quando o valor não existe o API vai me retornar:
{"status":{"message":"Data not found","status_code":404}}
mas o php me exibe um erro:
Cannot use object of type stdClass as array in... PORQUE O VALOR QUE TO PEGANDO NO FOREACH NÃO EXISTE ACREDITO EU...
então como eu faço pra verificar se o api estava me retornando not found antes de fazer o foreach ou tem uma outra solução pra isso ???
segue o código:
foreach($obj2 as $key => $value){
$tier = $value[0]->tier;
$division = $value[0]->entries[0]->division;
}Olá! Você está tentando usar um objeto como array
Quando for usar objeto, use a setinha ->
Quando for em array use os colchetes [ ]
Verifique o tipo de variável, para poder usar os elementos adequados
Olá!
Aparentemente o index 'division' está dentro de entries: