Я пытаюсь объединить разные индексы в один индекс. Предоставленный код является примером ..
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 = (объект) array_merge ((массив) $ obj1, (массив) $ obj2);
Пожалуйста, попробуйте это:
$objArr1 = (array)$yourArr[0];
$objArr2 = (array)$yourArr[1];
$mergedArr = (object)array_merge($objArr1,$objArr2);
Вы можете достичь в 2 пути.
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
)