我想将像第一个元素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