如何制作具有相同名称的PHP stdClass对象?

Sun*_*ood 7 php object stdclass

我正在反对一个API,它给我一个stdClass对象,看起来像这样(实际数据被替换)

"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",
    },
Run Code Online (Sandbox Code Playgroud)

如何创建像"注释"这样的stdClass对象,它具有多个具有相同名称但数据不同的子字段.当我尝试创建一个看起来像这样的stdClass时,我的Comments部分将只包含1个输入,这是while循环中的最后一个输入.因此,不是应用于底部,而是用新的数据替换旧数据.如何解决这个问题?

dec*_*eze 16

"comments"是一个带有键的对象,"data"它是一个对象数组.您不能在任何语言,JSON,PHP stdClass或其他语言中重用相同的密钥.您想要创建一个类似对象的数组.

$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);
Run Code Online (Sandbox Code Playgroud)