2016-03-03 85 views
0

我有两个数组,新数组锁定在旧数组复制钥匙,更换与新数组值值,合并两个数组,找到重复键和更新值

旧阵列

Array 
(
    [tool_situs] => Array 
     (
      [template] => aa 
      [title] => bb 

     ) 

[style] => Array 
     (
      [.title] => Array 
       (
        [color] => red 
        [font-size] => 20px 

       ) 

     ) 

) 

和新阵列

Array 
(
    [tool_situs] => Array 
     (
      [title] => ddd 
     ) 

    [style] => Array 
     (
      [.title] => Array 
       (
        [color] => #fff 

       ) 

     ) 

) 

我已经使用array_merge_recursive()但不能代替重复键的值尝试,仅从新阵列

添加新的价值
Array 
(
    [tool_situs] => Array 
     (
      [template] => aa 
      [title] => Array 
      (
       [0] => aa 
       [1] => ddd 
      ) 

     ) 

[style] => Array 
     (
      [.title] => Array 
       (
        [color] => Array 
        (
         [0] => red 
         [1] => #fff 
        ) 
        [font-size] => 20px 

       ) 

     ) 

) 
在阵列ebove

tool_situs->标题仅从新阵列添加新的阵列,也风格 - >标题 - >颜色回报由NE阵列添加新的价值。

帮我tool_situs->标题和风格都值如何 - >标题 - >颜色更换新阵列的价值这样

我会出来把这样的:

Array 
(
    [tool_situs] => Array 
     (
      [template] =>aa 
      [title] => ddd 
     ) 

    [style] => Array 
     (
      [.title] => Array 
       (
        [color] => #fff 
        [font-size] => 20px 
       ) 

     ) 

) 
+1

*我已尝试使用* ...?试图使用什么? – Rizier123

+0

欢迎来到SO。 请阅读[我可以问哪些主题](http://stackoverflow.com/help/on-topic) 和[如何提出一个好问题](http://stackoverflow.com/help/how-to - 问) 和[完美的问题](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) SO是**不是免费的编码或教程服务* *你必须表明你已经努力解决你自己的问题。 – RiggsFolly

+0

@ TSaddamFahmiMicely check [array_replace_recursive](http://php.net/manual/en/function.array-replace-recursive.php) – jitendrapurohit

回答

0

随着人们都表示要使用array_replace_recursive()类似下面应该工作:

$updatedStyles = array_replace_recursive($currentStyles, $newStyles);

这对我来说将输出以下数组:

Array 
(
    [tool_situs] => Array 
     (
      [template] => aa 
      [title] => ddd 
     ) 

    [style] => Array 
     (
      [title] => Array 
       (
        [color] => blue 
        [font-size] => 20px 
       ) 

     ) 

) 

能找到有关功能here的更多信息,您可以找到一个工作示例here

+0

我一直在寻找这个答案很长的时间,谢谢你,下次我会更彻底地区别array_replace_recursive和array_marge_recursive。谢谢你 –

0

array_replace_recursive是你需要的。

$array1 = your_first_array(); 
$array2 = your_second_array(); 

$result = array_replace_recursive($array1, $array2); 

var_dump($result); //result array is same as what you've shown as output in your question. 
相关问题