【问题标题】:how can combine different index into one index如何将不同的索引组合成一个索引
【发布时间】:2016-02-18 06:49:52
【问题描述】:
我正在尝试将不同的索引组合成一个索引。给定的代码是示例..
Array(
[0] => stdClass Object
(
[player_id] => 92
[player_name] => XYZ
)
[1] => stdClass Object
(
[player_type_id] => 4
[type] => All-Rounder
))
预期的答案是
Array([0] => stdClass Object
(
[player_id] => 92
[player_name] => XYZ
[player_type_id] => 4
[type] => All-Rounder
)
【问题讨论】:
标签:
php
arrays
arrayobject
【解决方案1】:
试试这个:
$obj_merged = (object) array_merge((array) $obj1, (array) $obj2);
【解决方案2】:
请试试这个:
$objArr1 = (array)$yourArr[0];
$objArr2 = (array)$yourArr[1];
$mergedArr = (object)array_merge($objArr1,$objArr2);
【解决方案3】:
您可以通过两种方式实现。
1) 使用array_merge函数
2) 使用+ 运算符
参考下面的例子:
$obj1 = new StdClass();
$obj1->player_id = 92;
$obj1->player_name = 'Test Name';
$obj2 = new StdClass();
$obj2->player_type_id = 92;
$obj2->type = 'Test Name';
$array = array($obj1, $obj2);
$merged_array = (object) ((array) $obj1 + (array) $obj2);
print_r($merged_array);
echo '--------------------------------------- <br />';
$obj_merged = (object) array_merge((array) $obj1, (array) $obj2);
print_r($obj_merged);
输出:
stdClass Object
(
[player_id] => 92
[player_name] => Test Name
[player_type_id] => 92
[type] => Test Name
)
---------------------------------------
stdClass Object
(
[player_id] => 92
[player_name] => Test Name
[player_type_id] => 92
[type] => Test Name
)
另一种使用foreach循环的方法:
foreach($obj2 as $k => $v){
$obj1->$k = $v;
}
print_r($obj1);
输出:
stdClass Object
(
[player_id] => 92
[player_name] => Test Name
[player_type_id] => 92
[type] => Test Name
)