2016-05-04 13 views
1

APIからの出力をコーディングしようとしています。私は例のみACCOUNT_IDのために出力したい場合、私は$のapi_response、そうPHPで特定の配列を出力するには?

object(stdClass)#1 (3) { 
    ["status"]=> 
    string(2) "ok" 
    ["count"]=> 
    int(1) 
    ["data"]=> 
    array(1) { 
    [0]=> 
    object(stdClass)#2 (4) { 
     ["clan_id"]=> 
     int(1000001876) 
     ["nickname"]=> 
     string(10) "JakenVeina" 
     ["id"]=> 
     int(1001147659) 
     ["account_id"]=> 
     int(1001147659) 
    } 
    } 
} 

のようなコードをのvar_dumpた場合、私はもっと試した

$api_response = json_decode(file_get_contents("--LINK TO API--")); 

は、だから私は、最初にこれを取りました方法:

$account_id = $api_response["data"]["account_id]; 
echo $account_id; 

echo $api_response->account_id; 

何も役に立たなかった。 誰かがアイデアを持っていますか?

+0

ここで、またはあなたのコードに入力ミスがありますが、 "$ account_id = $ api_response [" data "] [" account_id];の末尾に1つも入力されていないかどうかわかりません – Andreas

答えて

1

あなたはにデコードして配列を要求していません。

あなたは(真の点に注意してください)必要があります。

$api_response = json_decode(file_get_contents("--LINK TO API--"), true); 

その後、あなたは、必要に応じて配列のキーにアクセスすることができるはずです。

account_idは、指定したレベルより1つ下の子レベルです。

+0

ありがとうございました。それは動作しますが、私は1つの質問が残っています。これは、account_id変数に[0]を入れると機能します。これは何のために使うのですか? 参照:$ account_id = $ api_response ['data'] [0] ['account_id']; //編集しました。ありがとう:) – JohnHSmith

+0

'['data']'は配列の配列です – DevDonkey

0

結果の最初のレベルはstdclassなので->を使用してdataアレイを取得する必要があります。データは配列で、[]を使用してメンバーにアクセスします。

あなたACCOUNT_IDを取得するには、使用することができます:

$account_id = $api_response->data['account_id']; 
-1

を使用すると、数値のため、オブジェクトのようにアクセスする必要があるので、あなたは、オブジェクトの配列を持っている、あなたはそれ以外の場合は、あなたがアクセスすることはできません{}を使用する必要がありますそれ。

$api_response->data->{0}->account_id; //1001147659 

はまた、あなたは、2番目のパラメータとしてjson_decodetrueを使用して同じことをしたことができます。これを連想配列として変換すると、配列は連想配列として変換され、次のようにアクセスできます。

$api_response['data'][0]['account_id']; //1001147659 

どちらも同じ結果になります。

+0

'downvote'を与えるのは誰ですか?誰がこのことをしたの?どうしてか言ってくれない。 –