如何使用数组合并合并具有重复键的数组?

How to merge an array with duplicate keys with array merge?

$cat1=array( "_id"=>new MongoId("562918fc2bad8c345d000029"),"name"=>"Category Two");


$cat2=array("_id"=>new MongoId("562918e62bad8c445d000029"),
"name"=>"Category One");

$categories=array();

$categories=array_merge($cat1,$cat2);

print_r($categories);

但它returns如下

 array("_id"=>new MongoId("562918e62bad8c445d000029"),
"name"=>"Category One")

我也试过array_unique

array_unique(array_merge($cat1,$cat2))

但是结果和上面一样
我知道它不会合并两个数组,因为它们具有相同的数组键。 相反,它将第二个合并到第一个数组中,但是我怎样才能合并两个数组,所以它看起来像下面这样。

array(array( "_id"=>new MongoId("562918fc2bad8c345d000029"),"name"=>"Category Two"),array("_id"=>new MongoId("562918e62bad8c445d000029"),
    "name"=>"Category One"));

看看实时代码 http://viper-7.com/Oaa4zL

您可以手动完成并将它们都添加到一个数组中:

print_r(array(
    $cat1,
    $cat2
));

如果你不知道会有多少类别,那么你可以简单地将它们推入数组。

$allCat = array();
$allCat[] = $cat1;
$allCat[] = $cat2;
.
.
.
$allCat[] = $catN;

print_r($allCat);

无需合并:

$categories[] = array("_id"=>new MongoId("562918fc2bad8c345d000029"),
                      "name"=>"Category Two");

$categories[] = array("_id"=>new MongoId("562918e62bad8c445d000029"),
                      "name"=>"Category One");