我有两个数组,如下所示:
数组1:
array([0]=> 11, [1] => 2.5)数组2:
Array (
[0] => stdClass Object (
[type] => 1
[creator_id] => 3
[creator_name] => E1
[per_tar] => 300
[pro_tar] => 200
[ac] => 300
[PA] => 17
[Q1] => 800
)
[1] => stdClass Object (
[type] => 1
[creator_id] => 4
[creator_name] => E2
[per_tar] => 100
[pro_tar] => 170
[ac] => 0
[PA] => 7
[Q1] => 270
)
) 我想要的是通过以下方式将数组1与数组2合并
数组1的键被合并到数组2的键对象中,所有键都是相同的。
所以我的预期输出是:
Array (
[0] => stdClass Object (
[type] => 1
[creator_id] => 3
[creator_name] => E1
[per_tar] => 300
[pro_tar] => 200
[ac] => 300
[PA] => 17
[Q1] => 800
[new] => 11
)
[1] => stdClass Object (
[type] => 1
[creator_id] => 4
[creator_name] => E2
[per_tar] => 100
[pro_tar] => 170
[ac] => 0
[PA] => 7
[Q1] => 270
[new] => 2.5
)
) 我正在尝试array_merge()函数,但它只合并了两个数组。请帮帮我
发布于 2017-02-24 17:05:22
$res = [];
foreach($array1 as $key => $val){
// before merging convert object to array
$arr = is_object($array2[$key]) ? (array)$array2[$key] : $array2[$key];
$res[$key] = array_merge($array1[$key], $arr);
}
print_r($res);发布于 2017-02-24 17:06:24
您应该迭代$array1项,并将每个项的值插入到$array2的相关索引中。
foreach ($array1 as $key=>$value){
$array2[$key]->new = $value;
}请参阅demo中的结果
另外,如果你想保持array2,将它的值复制到$newArray这样的新变量中。
$newArray = $array2;
foreach ($array1 as $key=>$value){
$newArray[$key]->new = $value;
}发布于 2017-02-24 17:00:21
最好的方法是将stdClass对象转换为数组,然后使用array_merge。
将stdClass对象转换为数组,如下所示:
$array = json_decode(json_encode($object), true);https://stackoverflow.com/questions/42434083
复制相似问题