为什么我不能使用 array_merge() 合并数组?

Why can't I merge arrays using array_merge()?

我尝试合并数组但没有成功。数组如下所示:

//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。还是解决不了。

您需要将新数组分配给一个变量。新数组将包含合并后的数组,您可以在循环中反复合并这些数组。这完全取决于你的键和值是什么让它按照你想要的方式工作,但文档很清楚 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);