Подтвердить что ты не робот

Объединить два объекта в php

Я использую API, который возвращает меня на адрес электронной почты, заданный таким массивом:

stdClass Object
(
    [status] => OK
    [contact] => stdClass Object
        (
            [id] => 0000000
            [email] => [email protected]
            [last_activity] => 1362131446
            [last_update] => 0
            [created_at] => 1356617740
            [sent] => 5
            [open] => 1
            [click] => 1
            [spam] => 0
            [bounce] => 0
            [blocked] => 0
            [queued] => 0
        )
[lists] => Array
        (
            [0] => stdClass Object
                (
                    [active] => 1
                    [unsub] => 1
                    [unsub_at] => 1363078528
                )

        )

)

как объединить информацию [контакт] с [списками] [0] в одном объекте?

Спасибо за помощь

4b9b3361

Ответ 1

$info = yourstuff;
$arrContact = (array) $info->contact;
$arrList = (array) $info->lists[0];
$merged = array_merge($arrContact, $arrList);
var_dump($merged, 'have fun');

Довольно тривиально;)

Ответ 2

 <?php
$a = new stdClass;
$a->name = 'Anthony';

$b = new stdClass;
$b->location = 'UK';

$c = (object)array_merge((array)$a, (array)$b);

var_dump($c);

/*
    object(stdClass)#3 (2) {
      ["name"]=>
      string(7) "Anthony"
      ["location"]=>
      string(2) "UK"
    }
*/ 

Ответ 3

Как насчет:

foreach ($info->lists[0] as $key => $value {
  $info->contact->$key = $value;
}

Предотвращает отбрасывание между массивами и объектами