合并一个 php 数组和一个 php 对象


Merge a php array and a php object

我想将像第一个元素array合并到一个像第二个元素object。是否可以合并 php 对象和 php 数组?如果是这样,我该如何合并这些?

我已经通过print_r截断

第一个元素(数组)

Array
(
    [start_date] => 2014-12-28
)

第二个元素(对象)

Bannerlookup Object
(
    [_new:CActiveRecord:private] => 
    [_attributes:CActiveRecord:private] => Array
        (
            [id] => 1
            [name] => First Banner
            [description] => My first banner description goes here
            [type] => 1
            [position] => 1
            [price] => 20
            [status] => 1
        )
    [_related:CActiveRecord:private] => Array
        (
        )
    [_c:CActiveRecord:private] => 
    [_pk:CActiveRecord:private] => 1
    [_alias:CActiveRecord:private] => t
    [_errors:CModel:private] => Array
        (
        )
    [_validators:CModel:private] => 
    [_scenario:CModel:private] => update
    [_e:CComponent:private] => 
    [_m:CComponent:private] => 
)

提前致谢:)

首先将对象转换为数组。

$new_array = json_decode(json_encode($your_object), true);

现在将其与现有数组合并。

$merged_array = array_merge( $old_array, $new_array) ;

合并将导致第二个数组覆盖相同的key。请参阅数组合并手册

哇,

你可以用更多的可读性和更容易的方式做到这一点,就像

$combination = CMap::mergeArray($my_array, $my_model->attributes);

每个模型都有一个函数getAttributes()它将为您提供一个模型属性数组,然后您可以使用它,没有NEED JSONENCODE对其进行解码:D