Слияние двух объектов - PullRequest
       12

Слияние двух объектов

0 голосов
/ 24 декабря 2009

Цитата объекта:

Array
(
    [0] => Array
        (
            [sitecaptions] => Array
                (
                    [id] => 2
                    [caption] => Great camera deals!
                    [linkurl] => http://www.99hotdeals.com/cat/Cameras
and Camcorders
                )

        )

)

Объект сообщения:

Array
(
[0] => Array
        (
            [Post] => Array
                (
                    [id] => 2797
                    [post_title] => xx1
                    [item_desc] => xx desc
                    [dateadded] => 2009-12-22 11:10:15
                )
            [Category] => Array
                (
                    [0] => Array
                        (
                            [id] => 99
                            [name] => Others
                        )

                )
       )
[1] => Array
        (
            [Post] => Array
                (
                    [id] => 2798
                    [post_title] => xx2
                    [item_desc] => xx2 desc
                    [dateadded] => 2009-12-22 11:10:45
                )
            [Category] => Array
                (
                    [0] => Array
                        (
                            [id] => 99
                            [name] => Others
                        )

                )
       )
)

Как видите, объект Posts содержит два элемента: [Post] и [Категория] для каждой записи [0], [1] и т. Д. Я хочу вставить Элемент [sitecaptions] в этот объект сообщения, так что в действительности это выглядит так:

Array
(
[0] => Array
        (
            [Post] => Array
                (
                    [id] => 2797
                    [post_title] => xx1
                    [item_desc] => xx desc
                    [dateadded] => 2009-12-22 11:10:15
                )
            [Category] => Array
                (
                    [0] => Array
                        (
                            [id] => 99
                            [name] => Others
                        )

                )
            [sitecaptions] => Array
                (
                    [id] => 2
                    [caption] => Great camera deals!
                    [linkurl] => http://www.99hotdeals.com/cat/Cameras
and Camcorders
                )
       )
)

Как мне объединить два объекта таким образом? Или как мне вставить элементы в существующий объект? Надеюсь, я понимаю, о чем я спрашиваю. Спасибо за ваше время ...

1 Ответ

2 голосов
/ 24 декабря 2009

давайте назовем эти объекты $ Quotes и $ Posts соответственно.

Объект кавычек:

Array (
    [0] => Array ( 
        [sitecaptions] => Array (
            [id] => 2 
            [caption] => Great camera deals! 
            [linkurl] => http://www.99hotdeals.com/cat/Cameras and Camcorders )
            )
        )
    )

Объект сообщения:

Array ( 
    [0] => Array (
        [Post] => Array (
            [id] => 2797
            [post_title] => xx1
            [item_desc] => xx desc
            [dateadded] => 2009-12-22 11:10:15 
        )
        [Category] => Array (
            [0] => Array (
                [id] => 99
                [name] => Others
            )
        )
    )
    [1] => Array (
        [Post] => Array (
            [id] => 2798 
            [post_title] => xx2 
            [item_desc] => xx2 desc 
            [dateadded] => 2009-12-22 11:10:45
         )
         [Category] => Array (
            [0] => Array (
                [id] => 99 
                [name] => Others 
            )
        )
   )
)

Вы хотите, чтобы [sitecaptions] из кавычек $ были в обоих ваших элементах $ posts? или только тот с тем же ключом?

как сказать, если у вас всего $ quotes [0], это повлияет только на $ posts [0]. ИЛИ будут затронуты как $ posts [0], так и $ posts [1].

если вы хотите, чтобы $ quotes [0] находились в обоих элементах $ post, вы можете сделать это:

foreach ($posts as $key=>$post) {
    $posts[$key]['sitecaptions'] = $quotes[0]['sitecaptions'];
}

если вам нужны только элементы из $ quotes, имеющие тот же индекс, что и элементы в $ posts, вы можете сделать это:

$posts = array_merge_recursive($posts,$quotes);

выполнение этого второго будет иметь $ posts [1] без элемента ['sitecaptions']. конечный результат:

Array (
    [0] => Array ( 
        [Post] => Array ( 
            [id] => 2797 
            [post_title] => xx1 
            [item_desc] => xx desc 
            [dateadded] => 2009-12-22 11:10:15 
        ) 
        [Category] => Array ( 
            [0] => Array ( 
                [id] => 99 
                [name] => Others 
            )
        )
        [sitecaptions] => Array (
            [id] => 2
            [caption] => Great camera deals!
            [linkurl] => http://www.99hotdeals.com/cat/Cameras and Camcorders 
        )
    )
)

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...