合并两个对象

时间:2009-12-24 05:15:47

标签: php oop

引用对象:

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
                        )

                )
       )
)

如您所见,帖子对象包含两个元素,[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 个答案:

答案 0 :(得分:2)

让我们分别调用这些对象$ 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]都会受到影响。

如果你希望$ postes [0]都在$ post元素中,你可以这样做:

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

如果你只想要$引号中与$ 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 
        )
    )
)

希望它有所帮助!