我尝试合并数组失败了。数组如下所示:
//var_dump()
array (size=2)
0 =>
object(Brand)[177]
(...)
1 =>
object(Brand)[271]
(...)
这是我使用的代码:
$premiumBrands = array();
foreach ($stores as $store) :
$brands = getBrands($store->brands);
echo count($brands['premium']).', ';
if(count($brands['premium']) > 0) {
array_merge($premiumBrands,$brands['premium']);
}
endforeach;
echo count(premiumBrands);
循环中输出的结果是:2, 0, 0, 1, 0
;
最后一个输出的结果是:0
;
使用
$premiumBrands = $premiumBrands + $brands['premium'];
不起作用,因为所有数组都以索引键[0]开头 - 所以它只会覆盖premiumBrands
那么如何合并我的数组呢?
是的,我读过the docs。仍然无法解决它。
答案 0 :(得分:3)
您需要将新数组分配给变量。新数组将包含合并的数组,您可以在循环中反复合并。这一切都取决于你的键和值是什么让它按照你想要的方式工作,但文档清晰http://php.net/manual/en/function.array-merge.php
$premiumBrands = array();
foreach ($stores as $store) :
$brands = getBrands($store->brands);
echo count($brands['premium']).', ';
if(count($brands['premium']) > 0) {
$premiumBrands = array_merge($premiumBrands,$brands['premium']); /// *** ///
}
endforeach;
echo count(premiumBrands);