2016-05-04 37 views
1

Ich versuche, eine Ausgabe von einer API zu codieren.Wie gibt man ein spezifisches Array in PHP aus?

Also nahm ich dies zuerst:

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

wenn ich den $ api_response var_dump, einen Code wie

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) 
    } 
    } 
} 

Also, wenn ich nur die account_id zum Beispiel ausgegeben werden soll, habe ich versucht, mehr Wege:

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

und

echo $api_response->account_id; 

Nichts funktionierte für mich. Hat jemand eine Idee?

+0

Ich weiß nicht, ob es hier oder in Ihrem Code einen Tippfehler gibt, aber Sie vermissen einen "am Ende von $ account_id = $ api_response [" data "] [" account_id]; ' – Andreas

Antwort

1

youre nicht json_decode zu einem Array zu dekodieren.

Sie müssen (beachten Sie die true):

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

dann sollten Sie in der Lage sein, um die Array-Schlüssel für den Zugriff nach Bedarf.

Auch account_id ist eine untergeordnete Ebene niedriger als Sie angeben.

+0

Danke. Es funktioniert, aber ich habe noch eine Frage. Es funktioniert nur, wenn ich [0] in die Variable account_id setze. Wozu dient das? Siehe: $ account_id = $ api_response ['Daten'] [0] ['account_id']; // BEARBEITEN Got it, thanks :) – JohnHSmith

+0

weil '['data']' ist ein Array von Arrays – DevDonkey

0

Die erste Ebene Ihres Ergebnisses ist ein stdclass daher müssen Sie -> verwenden, um das data Array zu erhalten. Daten ist dann ein Array und Sie greifen auf seine Mitglieder mit [].

Um Ihre account_id erhalten Sie verwenden können:

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

Sie haben ein Objekt-Array, so dass Sie es wie ein Objekt zugreifen müssen, für einen numerischen Wert, müssen Sie {} sonst verwenden Sie nicht zugreifen können es.

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

Auch können Sie tun das gleiche der true im json_decode als zweiten Parameter verwendet wird. Wenn Sie dies tun dort würde das Array als assoziatives Array umgewandelt werden, und Sie können es gerne zugreifen:

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

Beide werden gleiches Ergebnis erzeugt.

+0

Wer geben die 'downvote' ??? Wer hat das Ding gemacht? Bitte erzähle mir warum. –

Verwandte Themen