繁体   English   中英

PHP使用另一个数组中的值和键更新数组

[英]PHP update array with values and keys from another array

我有两个数组:

$a = [
    36 => 7,
    38 => 9,
    41 => 12,
    42 => 5
];

$b = [
    38 => 9,
    41 => 9,
    42 => 5
];

数组a具有一个额外的key[36]而数组b具有key[41]的不同值。

我如何设置一个键a等于0 ,如果它是不是在b ,然后我如何更新的关键a如果它在不同的值b和如何添加新键a ,如果它是在b和没有a

现在,我已经编写了以下代码:

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

它有效,但是我觉得应该有一种更简单的方法:-s

在更新的关键a如果它在不同的值b ,我如何新的密钥添加到a如果是b ,而不是在a

$a = array_replace($a, $b);

设置在一个关键的a等于0,如果它不是在b

foreach(array_diff_key($a, $b) as $k=>$v) {
   $a[$k] = 0;
}

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM