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