2012-08-27 5 views
5

Ich bin gegen eine API arbeiten, die mir ein stdClass Objekt gibt, das (aktuelle Daten ersetzt) ​​Wie mache ich PHP stdClass Objekt mit dem gleichen Namen?

"data": [ 
    { 
     "type": "image", 
     "comments": { 
     "data": [ 
      { 
      "created_time": "1346054211", 
      "text": "Omg haha that's a lot of squats", 
      "from": {}, 
      "id": "267044541287419185" 
      }, 
      { 
      "created_time": "1346054328", 
      "text": "Fit body", 
      "from": {}, 
      "id": "267045517536841021" 
      }, 
     ] 
     }, 
     "created_time": "1346049912", 
    }, 

wie folgt aussieht Wie ist es möglich, ein stdClass Objekt wie „Kommentare“ erstellen, die alle mehrere Unterfelder haben mit demselben Namen, aber anderen Daten. Wenn ich versuche, eine stdClass zu erstellen, die so aussieht, enthält mein Kommentarbereich nur 1 Eingabe, die die letzte in der while-Schleife ist. Anstatt die unteren Daten zu übernehmen, werden die alten Daten durch die neuen Daten ersetzt. Wie behebt man das?

Antwort

11

"comments" ist ein Objekt mit einem Schlüssel "data" welches ein Array von Objekten . Sie können den gleichen Schlüssel in keiner Sprache, JSON, PHP, stdClass oder anders verwenden. Sie möchten ein Array ähnlicher Objekte erstellen.

$comments = new stdClass; 
$comments->data = array(); 

for ($i = 0; $i < 2; $i++) { 
    $comment = new stdClass; 
    $comment->text = 'Lorem ipsum...'; 
    ... 
    $comments->data[] = $comment; 
} 

var_dump($comments); 
+0

Gute Antwort. Gutes Beispiel :) Das hätte mich eine laaaange Zeit gekostet, um herauszufinden, ob ich deine Hilfe nicht bekommen habe. Danke! –