2016-03-04 129 views
0

我有一个对象数组,这些对象都是同一个对象。但最后我需要将所有这些对象的值放入单个对象中。这些是我的对象。如何将两个对象的值合并到codeigniter中的一个对象中

 
Array 
(
    [0] => Permissions Object 
     (
      [modules] => Array 
       (
        [0] => 3 
        [1] => 4 
       ) 

      [submodules] => Array 
       (
       ) 

      [operations] => Array 
       (
        [3M] => Array 
         (
          [0] => Create 
          [1] => Read 
          [2] => Update 
          [3] => Delete 
         ) 

        [4M] => Array 
         (
          [0] => Create 
          [1] => Read 
          [2] => Update 
          [3] => Delete 
         ) 

       ) 

     ) 

    [1] => Permissions Object 
     (
      [modules] => Array 
       (
        [0] => 1 
        [1] => 3 
       ) 

      [submodules] => Array 
       (
        [0] => 1 
        [1] => 2 
        [2] => 3 
        [3] => 4 
        [4] => 7 
        [5] => 8 
       ) 

      [operations] => Array 
       (
        [1] => Array 
         (
          [0] => Create 
          [1] => Read 
          [2] => Update 
          [3] => Delete 
         ) 

        [2] => Array 
         (
          [0] => Create 
          [1] => Read 
          [2] => Update 
          [3] => Delete 
         ) 

        [3] => Array 
         (
          [0] => Create 
          [1] => Read 
          [2] => Update 
          [3] => Delete 
         ) 

        [4] => Array 
         (
          [0] => Create 
          [1] => Read 
          [2] => Update 
          [3] => Delete 
         ) 

        [7] => Array 
         (
          [0] => Create 
          [1] => Read 
          [2] => Update 
          [3] => Delete 
         ) 

        [8] => Array 
         (
          [0] => Create 
          [1] => Read 
          [2] => Update 
          [3] => Delete 
         ) 

        [3M] => Array 
         (
          [0] => Create 
          [1] => Read 
          [2] => Update 
          [3] => Delete 
         ) 

       ) 

     ) 

) 

回答

0

合并之前或之后您只需删除重复的值。

$array1 = [ 
     "modules" => [ 
      0 => 2, 1 => 4 
      ], 
     "submodules" => [ 
      "3m" => [ 
       0 => "create", 1 => "read" 
       ], 
      "4m" => [0 => "create", 1 => "read" 
       ] 
     ] 
    ]; 

$array2 = [ 
    "modules" => [ 
     0 => 1, 
     1 => 3 
     ], 
    "submodules" => [ 
     "1m" => [ 
      0 => "create", 1 => "read" 
      ], 
     "10m" => [ 
      0 => "create", 1 => "read" 
      ] 
    ] 
]; 

$merged = array_merge_recursive($array1, $array2); 
print_r($merged); 

Array ([modules] => Array ( 
[0] => 2 [1] => 4 [2] => 1 [3] => 3 
) 
[submodules] => Array ( 
[3m] => Array ([0] => create [1] => read 
    ) 
[4m] => 
    Array ([0] => create [1] => read 
     ) 
[1m] => Array (
    [0] => create [1] => read 
    ) 
[10m] => Array ( 
[0] => create [1] => read 
    ) 
) 

+0

你可以给我一个例子。 – Venkat

0

如果你不想使用array_merge,你可以用一种变通方法如下:

$global; //your array 
$merged = array(); //the array you want with the merged objects 
foreach ($global as $k => $object) { 
    foreach ($object as $key => $values) { 
     foreach ($values as $val) 
      $merged[$key][] = $val; 
    } 
}