将数组对象添加到数组php?

时间:2013-08-20 04:54:09

标签: php arrays

我有一个看起来像这样的数组对象并存储在变量$named_array

Array
(
    [results] => Array
        (
            [0] => Array
                (
                    [date] => 2013-15-6
                    [position] => 5
                    [person] => John
                )

            [1] => Array
                (
                    [date] => 2013-15-6
                    [position] => 3
                    [person] => Alex
                )

        )

)

另一个名为$post的数组,它是一个用$posts = get_posts(array(....调用的WordPress帖子对象数组,然后每个循环使用$ post作为变量。

在我的foreach循环中,我尝试了以下方法来组合数组,但它不起作用。

$combinedData = array_merge($post, $named_array);
print_r($combinedData);

我可以看到我的post对象数组有print_r($ post);在foreach循环中以及named_array中。将named_array添加到post数组的正确函数是什么?

由于

4 个答案:

答案 0 :(得分:1)

如果$ post是一个对象,你可以用这个

添加一个名为results的数组
$post->results = Array
    (
        [0] => Array
            (
                [date] => 2013-15-6
                [position] => 5
                [person] => John
            )

        [1] => Array
            (
                [date] => 2013-15-6
                [position] => 3
                [person] => Alex
            )

    )

$post->results = $named_array['results'];

答案 1 :(得分:1)

正如你所提到的,

$posts是一个对象数组

$post是一个对象,而不是数组,因此您无法使用array_merge()

如果您想将结果作为新属性添加到$post,正确的方法是:

$post->results = $named_array['results'];

答案 2 :(得分:0)

答案 3 :(得分:0)

在这种情况下,在foreach循环中使用array_merge 是没有意义的。您使用array_merge附加第二个数组覆盖相同的键。您将foreach用于适用于每个元素的数组操作。

你没有展示你的$ post数组的样子。所以我只能猜测。

$combinedData = array_merge ( $post, $named_array );

已经将命名数组附加到$ post。也许你想要这个?

array_shift ( $named_array, $post ); 

它假设post数组看起来像命名数组的一个元素。