如何将不同的索引合并为一个索引


how can combine different index into one index

我正在尝试将不同的索引合并为一个索引。给定的代码是示例。

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
     )

试试这个:

$obj_merged= (object) array_merge((array) $obj 1, (array) $obj 2);

请尝试以下操作:

$objArr1 =  (array)$yourArr[0];
$objArr2 =  (array)$yourArr[1];
$mergedArr = (object)array_merge($objArr1,$objArr2);

您可以通过两种方式实现。

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
)