2015-06-25 27 views
0
[{ 
    "title" = > "CEO", 
     "name" = > "George", 
     "columns" = > [{ 
     "display_name" = > "Salary", 
     "value" = > "3.85", 
    }, { 
     "display_name" = > "Bonus", 
     "value" = > "994.19", 
    }, { 
     "display_name" = > "Increment", 
     "value" = > "8.15", 
    }] 
}] 


data2 = [{ 
    "title" = > "CEO", 
     "name" = > "George", 
     "columns" = > [{ 
     "display_name" = > "Address", 
     "value" = > "Albany", 
    }, { 
     "display_name" = > "Phone", 
     "value" = > "47123", 
    }, { 
     "display_name" = > "Mobile", 
     "value" = > "784123", 
    }] 
}] 

我具備上述兩個陣列,我要加入內部columns的值成一個陣列,如果該條件得到滿足像在兩個散列name = george加入 - 合併多維陣列與密鑰值作爲標識符PHP

所需的輸出是是這樣的:

[{ 
    "title" = > "CEO", 
     "name" = > "George", 
     "columns" = > [{ 
     "display_name" = > "Salary", 
     "value" = > "3.85", 
    }, { 
     "display_name" = > "Bonus",  
     "value" = > "994.19", 
    }, { 
     "display_name" = > "Increment", 
     "value" = > "8.15", 
    }, { 
     "display_name" = > "Address", 
     "value" = > "Albany", 
    }, { 
     "display_name" = > "Phone", 
     "value" = > "47123", 
    }, { 
     "display_name" = > "Mobile", 
     "value" = > "784123", 
    }] 
}] 

"name"=>"George" - 可能是標識符?或匹配?兩者中的id名稱相同,然後將列值轉儲到聯合陣列哈希中。

+0

你看着['array_merge();'(http://php.net/manual/en/function.array-merge.php)? –

回答

0

爲您製作一個功能:

<?php 
    function array_merge_on_key($original, $new, $key){ 
     if(is_array($original) && is_array($new)){ 
      $copy_from = array(); 
      if(array_key_exists($key, $new)){ 
       if(is_array($new[$key])){ 
        $copy_from = $new[$key]; 
       } 
      } 
      return is_null($copy_from) ? array_merge($original[$key], $copy_from) : $original; 
     } 
     return false; 
    }