2012-08-27 7 views
5

Sto lavorando contro un'API che mi dà un oggetto stdClass che assomiglia a questo (dati reali sostituiti)Come creare PHP stdClass Object con lo stesso nome?

"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", 
    }, 

Come è possibile creare un oggetto stdClass come "Commenti" che hanno più campi secondari tutto con lo stesso nome ma dati diversi. Quando provo a creare una stdClass simile alla mia, la mia sezione Commenti conterrà solo 1 input che è l'ultimo del ciclo while. Quindi invece di applicare in fondo sta sostituendo i vecchi dati con quello nuovo. Come risolvere questo?

risposta

11

"comments" è un oggetto con una chiave "data" che è un array di oggetti . Non è possibile riutilizzare la stessa chiave in nessuna lingua, JSON, PHP, stdClass o altro. Si desidera creare un arraydi oggetti simili.

$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

Buona risposta. Buon esempio :) Questo mi avrebbe richiesto un tempo moooolto per capire se non avessi ricevuto il tuo aiuto. Grazie! –