将元素添加到StdClass数组 - PHP / Codeigniter

时间:2013-07-30 10:47:29

标签: php arrays codeigniter stdclass

我有一个stdClass数组。该数组的输出如下:

Array
(
[0] => stdClass Object
    (
        [vendor_id] => 1
        [user_id] => 1
        [date_created] => 2013-06-12 16:48:38
        [date_edited] => 
        [status] => active
        [user_firstname] => Stuart
        [user_surname] => Blackett
    )
 )

我想要做的是向这个stdClass添加两个变量。它们是“total_bookings”和“total_venues”;

我目前正在循环搜索结果,然后计算创建总数。我想将这两个变量添加到该stdClass数组的末尾。

我的PHP如下:

$vendors = $this->po_model->get_all_vendors();

        $this->template->set('total_vendors', count($vendors));

        $count = 0;

        foreach($vendors as $vendor)
        {
            $count++;

            $total_venues = $this->po_model->get_count_venues($vendor->user_id);
            $total_bookings = $this->po_model->get_count_bookings($vendor->user_id);

            $vendors[$count]['total_venues'] = $total_venues;
            $vendors[$count]['total_bookings'] = $total_bookings;
        }

然而,当我var_dump我的Array看起来像这样:

Array
(
    [0] => stdClass Object
        (
            [vendor_id] => 1
            [user_id] => 1
            [date_created] => 2013-06-12 16:48:38
            [date_edited] => 
            [status] => active
            [user_firstname] => Stuart
            [user_surname] => Blackett
        )

    [1] => Array
        (
            [total_venues] => 6
            [total_bookings] => 14
        )

)

所以我的问题是,如何将total_venues和total_bookings添加到该stdClass()?

由于

2 个答案:

答案 0 :(得分:5)

$myArray[$indexOfObject]->total_venues = 6;
$myArray[$indexOfObject]->total_bookings= 14;

你的例子:

foreach($vendors as $key => $vendor)
{
    $total_venues = $this->po_model->get_count_venues($vendor->user_id);
    $total_bookings = $this->po_model->get_count_bookings($vendor->user_id);

    $vendors[$key]->total_venues = $total_venues;
    $vendors[$key]->total_bookings = $total_bookings;
}

答案 1 :(得分:2)

它是一个对象,你应该使用对象表示法,而不是数组表示法。同时更改您的count++移动这两条指令

$vendors[$count]->total_venues = $total_venues;
$vendors[$count]->total_bookings = $total_bookings;

$count++;