将单个Object推送到对象数组

时间:2015-07-20 19:10:07

标签: php

我的目标如下:

    $user= 
    object(stdClass)(2) 
    { 
        ["questions"]=> object(stdClass)(1) { [0] => object(stdClass) } 
        ["num_root_responses_for_section"]=> string(1) "0" 
    }

我想添加一个对象,这样我就可以将一系列对象放入questions属性中。

$user->questions[] = $new_question_object;

不起作用,因为它不是数组。

我想要这样的事情:

object(stdClass)(2) 
    { 
        ["questions"]=> object(stdClass)(2) { 
            [0]=> object(stdClass), 
            [1]=> object(stdClass) }
        ["num_root_responses_for_section"]=> string(1) "0" 
    }

我明白我可以数数,递增计数,然后添加我的对象。只是寻找更好的方式。

2 个答案:

答案 0 :(得分:0)

你最好使用一个数组,这是hackish但我很无聊:

$n = max(array_keys(get_object_vars($user->questions)));
$user->questions->{$n+1} = $new_question_object;

或更短(不是真的):

$user->questions->{max(array_keys(get_object_vars($user->questions)))+1} = $new_question_object;

答案 1 :(得分:0)

由于你坚持使用对象,你可以这样做..

$users->questions->{'9'} = 'value'; 

其中9是这个项目的首选索引。