[英]PHP update array with values and keys from another array
I have two arrays: 我有两个数组:
$a = [
36 => 7,
38 => 9,
41 => 12,
42 => 5
];
$b = [
38 => 9,
41 => 9,
42 => 5
];
Array a
has one extra key[36]
and array b
has a different value for key[41]
. 数组a
具有一个额外的key[36]
而数组b
具有key[41]
的不同值。
How do i set a key in a
to equal 0
if it is not in b
and then how do i update a key in a
if it has a different value in b
and how do i add new keys to a
if it is in b
and not in a
? 我如何设置一个键a
等于0
,如果它是不是在b
,然后我如何更新的关键a
如果它在不同的值b
和如何添加新键a
,如果它是在b
和没有a
?
For now i've made this code: 现在,我已经编写了以下代码:
foreach($a as $key => $value){
if(array_key_exists($key, $b) && $value != $b[$key]){
$a[$key] = $b[$key];
} else{
$a[$key] = 0;
}
}
if($diff = array_diff_key($b, $a)){
foreach($diff as $key => $value){
$a[$key] = $value;
}
}
ksort($a);
print_r($a);
And it works but i feel like there should be a much easier way :-s 它有效,但是我觉得应该有一种更简单的方法:-s
Update a key in a
if it has a different value in b
and how do i add new keys to a
if it is in b
and not in a
在更新的关键a
如果它在不同的值b
,我如何新的密钥添加到a
如果是b
,而不是在a
$a = array_replace($a, $b);
Set a key in a
equal to 0 if it is not in b
设置在一个关键的a
等于0,如果它不是在b
foreach(array_diff_key($a, $b) as $k=>$v) {
$a[$k] = 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.