1

トラック値を通過するだけです。私が必要とするのは、ユーザー名を取得することです。これが私が使用しているものです、ありがとう

    {
        "アイテム":[
        {
        "種類":"トラック",
        "id":33369455,
        "uri":"https://api.soundcloud.com/tracks/33369455",
        "ユーザー":{
        "id":758840,
        "username":"JoeDreamer",
        "avatar_url":"https://i1.sndcdn.com/avatars-000006878204-maqsrd-large.jpg?923db0b"},
        "ダウンロード数":0,
        "comment_count":1
        }、
        {
        "種類":"トラック",
        "id":33369455,
        "uri":"https://api.soundcloud.com/tracks/33369455",
        "ユーザー":{
        "id":758840,
        "username":"JoeDreamer",
        "avatar_url":"https://i1.sndcdn.com/avatars-000006878204-maqsrd-large.jpg?923db0b"},
        "ダウンロード数":0,
        "comment_count":1
        }]
    }

    $user = json_decode(file_get_contents("http://mydata.com/data.json"));
    foreach($user->items as $mydata)
    {
         $mydata->id をエコーし​​ます。"\n";
         foreach($mydata->user as $value)
         {
              $value->username をエコーし​​ます。"\n";
         }
    }    

4

3 に答える 3

1

多分

$user = json_decode(file_get_contents("http://mydata.com/data.json"));
foreach($user->items as $mydata)
{
     echo $mydata->id . "\n";
     echo $mydata->user->username;

}    
于 2012-12-25T18:34:35.000 に答える
0

あなたが見逃しているかもしれないのは、それ$myData-userはそれ自体の中にあるオブジェクトだということです。PHP のjson_decode()関数は、使用する JSON 文字列のすべての要素を再帰的に渡します。

{
  "kind":"track",
  ...
  "user":{
    "id":758840,
    "username":"JoeDreamer",
    ...
  }
}

親要素のプロパティとしてユーザー名にアクセスする必要があります。追加のkey変数を内側のforeachループに追加することで、キー名を調べてプロパティのみを選択できusernameます。

...
foreach($mydata->user as $key=>$value){
  if ($key == 'username'){
    echo $value . "\n";
  }
}

ただし、追加のループは冗長です。プロパティのすべてをループする特定の特定の必要がない限り、次のようにユーザー名に直接アクセスできます-

$mydata->user->username
于 2012-12-25T18:36:26.620 に答える