Php 数组合并/替换

Php 数组合并/替换,php,arrays,Php,Arrays,我有两个阵列: Array ( [2005] => 0 [2006] => 0 [2007] => 0 [2008] => 0 [2009] => 0 ) Array ( [2007] => 5 [2008] => 6.05 [2009] => 7 ) 我想合并这两个数组,这样如果第二个数组中存在一个值,它就会覆盖第一个数组的值。因此,生成的数组将是: Array ( [2

我有两个阵列:

Array
(
    [2005] => 0
    [2006] => 0
    [2007] => 0
    [2008] => 0
    [2009] => 0
)

Array
(
    [2007] => 5
    [2008] => 6.05
    [2009] => 7
)
我想合并这两个数组,这样如果第二个数组中存在一个值,它就会覆盖第一个数组的值。因此,生成的数组将是:

Array
(
    [2005] => 0
    [2006] => 0
    [2007] => 5
    [2008] => 6.05
    [2009] => 7
)
谢谢你的帮助

更新: 这是我最好的尝试,但却非常失败:

    $final = '';
    foreach ($years as $k => $v){
        if (in_array($k,$values)){
            $final .= $values[$k] . '|';
        }else{
            $final .= $k[$v] . '|';
        }

    }

    echo "final = $final";

我对PHP不太熟悉,但大致如下:

foreach ($array2 as $i => $value) {
  $array1[$i] = $value;
}

我对内部数组做了一点修改, 感谢您的代码,它在第一步给出了一个想法:)


正如我最近了解到的,PHP有一个功能,它可以做到这一点:

$result = $a + $b;

其中,$a是具有要优先的值的数组。(因此,在您的示例中,这意味着第二个数组是“
$a

就不能这么简单:

$new_array = array_unique(array_merge($ar1,$ar2));
也许我错过了什么或者我疯了。

就这么简单:

$new_array=array_replace(array_1,array_2)


我猜我错过了一个你可能没有在问题中详细解释的复杂问题。+1-这绝对是最简单、最简单的方法,看起来我没有吃酸葡萄什么的,但是当PHP已经有了一个操作符时,没有必要为此编写函数。请看我的答案。虽然这个函数不是ev必要时(有一个内置操作符可以这样做),整个函数可以写得更简洁(抱歉,不能换行):foreach($a2 as$k=>$v)$a1[$k]=$v;return$a1;除非变量前面的&字符。如果数组有空字符串呢?我遇到过很多这种情况。$result=array\u filter($a)+$b;将删除$a中的所有空字符串,然后将其与$b“合并”,然后使用sort()重新排列索引我发现了一个很好的图像和说明,解释了完全不同之处:
$new_array = array_unique(array_merge($ar1,$ar2));