我有一个看起来像这样的数组对象并存储在变量$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数组的正确函数是什么?
由于
答案 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)
http://php.net/manual/en/function.array-merge-recursive.php试试这个而不是array_merge
答案 3 :(得分:0)
在这种情况下,在foreach循环中使用array_merge 是没有意义的。您使用array_merge附加第二个数组覆盖相同的键。您将foreach用于适用于每个元素的数组操作。
你没有展示你的$ post数组的样子。所以我只能猜测。
$combinedData = array_merge ( $post, $named_array );
已经将命名数组附加到$ post。也许你想要这个?
array_shift ( $named_array, $post );
它假设post数组看起来像命名数组的一个元素。