1
$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);

but it returns as follow

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

I tried array_unique too

array_unique(array_merge($cat1,$cat2))

But result was same as above
I know its not merging both array because both have same array keys. Instead its merging second into a first array, But how can I merge both arrays so it will look like following.

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

Have a look at live code http://viper-7.com/Oaa4zL

phpnerd
  • 850
  • 1
  • 10
  • 25

3 Answers3

1

You could do it manually and add them both to an array:

print_r(array(
    $cat1,
    $cat2
));
The fourth bird
  • 154,723
  • 16
  • 55
  • 70
1

If you don't know how many categories will be there, then you can simply push them to the array.

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

print_r($allCat);
Ashish Choudhary
  • 2,004
  • 1
  • 18
  • 26
1

No need to merge them:

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

$categories[] = array("_id"=>new MongoId("562918e62bad8c445d000029"),
                      "name"=>"Category One");
AbraCadaver
  • 78,200
  • 7
  • 66
  • 87