2012-08-27 12 views
5

estoy trabajando contra una API que me da un objeto stdClass que tiene este aspecto (datos reales reemplazados)¿Cómo hacer que el objeto stdClass de PHP tenga el mismo nombre?

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

¿Cómo es posible crear un objeto stdClass como "Comentarios" que tienen varios subcampos todo con el mismo nombre pero diferentes datos. Cuando trato de crear un stdClass con este aspecto, mi sección Comentarios solo contendrá 1 entrada, que es la última en el ciclo while. Entonces, en lugar de aplicar en la parte inferior, está reemplazando los datos anteriores por los nuevos. ¿Cómo solucionar esto?

Respuesta

11

"comments" es un objeto con una clave "data" que es una matriz de objetos. No puede reutilizar la misma clave en ningún idioma, JSON, PHP, stdClass o de otro modo. Desea crear una matriz de objetos similares.

$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

Buena respuesta. Buen ejemplo :) Esto me habría tomado mucho tiempo averiguar si no recibí tu ayuda. ¡Gracias! –

Cuestiones relacionadas