2016-08-22 4 views
0

私はRIOT APIを使用しようとしていますが、私はちょっと固まっています。私が実際にやってみたことは何json値をPHPに

{ 
"36694730": [{ 
    "name": "Twitch's Marksmen", 
    "tier": "GOLD", 
    "queue": "RANKED_SOLO_5x5", 
    "entries": [{ 
     "playerOrTeamId": "36694730", 
     "playerOrTeamName": "OU2S", 
     "division": "V", 
     "leaguePoints": 0, 
     "wins": 207, 
     "losses": 201, 
     "isHotStreak": false, 
     "isVeteran": false, 
     "isFreshBlood": true, 
     "isInactive": false 
    }] 
}]} 

は次のとおりです:

<?php 
$link = "https://euw.api.pvp.net/api/lol/euw/v2.5/league/by-summoner/36694730/entry?api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
$json = file_get_contents($link); 

$get = json_decode($json, true); 
// echo $get['name']; 
echo $get->name; 

?> 

どちらが私のために動作しませんでした、時間を割いていただきありがとうございますが、これを読んで は、だからここにページの出力です。

+1

「var_dump($ json、$ get)」のような基本的なデバッグは、実際に何が行われたかを見るために行われましたか?あなたは、このコードで何かが間違ってしまうことができないと仮定しているだけです。これはまさに誤った態度です。外部リソースを扱うときは決して成功を収めてはいけません。常に失敗とみなし、失敗をチェックし、成功を楽しい驚きとして扱います。あなたのPHPが構文的に100%正しい場合でも、それは間違ったURLですか?そのサイトがダウンしている場合、またはマシンとそのサイトの間にネットワークの不具合がある場合はどうなりますか? –

+0

私はその呼び出しを行うためにCURLを使用したいと思います... – Eric

+0

[PHPでJSONからデータを抽出するにはどうすればいいですか?](http://stackoverflow.com/questions/29308898/how-do-i-extract- json-with-phpからのデータ) –

答えて

1

- あなたはこの道を行く必要があります。あなたのデコードされた配列は、このようにする必要があり、

Array 
(
    [36694730] => Array 
    (
     [0] => Array 
     (
      [name] => Twitch's Marksmen 
      [tier] => GOLD 
      [queue] => RANKED_SOLO_5x5 
      [entries] => Array 
      (
       [0] => Array 
       (
        [playerOrTeamId] => 36694730 
        [playerOrTeamName] => OU2S 
        [division] => V 
        [leaguePoints] => 0 
        [wins] => 207 
        [losses] => 201 
        [isHotStreak] => 
        [isVeteran] => 
        [isFreshBlood] => 1 
        [isInactive] => 
       ) 
      ) 
     ) 
    ) 
) 

あなたのコードは次のようになります -

echo $get['36694730']['0']['name'];

・ホープ、このことができます。

+0

魅力的なように働いた – user1114748

1

プロパティに直接アクセスすることはできません。デコード後に配列に入っていなければなりません。

foreach ($get as $response) { 
    foreach ($response as $element) { 
     echo $element['name']; //Twitch's Marksmen 
    } 
} 
1

json_decodeからの応答として多次元配列があります。あなたは(truejson_decodeセットの第二パラメータ)のアレイにデータを復号化しているので

$get = json_decode($json, true); 
foreach ($get as $firstElement) { 
    foreach ($firstElement as $secondElement) { 
     echo $secondElement['name']; 
    } 
}