如何替换两个相同的键数组并使任何设置键都为空

时间:2017-07-04 14:48:04

标签: php

假设我们有2个流动阵列

$arr1= array('a' => "XL");  
$arr2= array('a' => "XLd",'b'=>"CDW");   

我需要将$ arr1分配给$ arr2,并将其他键清空,而内置函数不是foreach。

看起来应该如下:

array(2) { ['a']=> string(2) "XL" ['b']=> string(0) ""}   

感谢

3 个答案:

答案 0 :(得分:0)

这看起来很有趣:))

<?php
$arr1= array('a' => "XL");  
$arr2= array('a' => "XLd",'b'=>"CDW");

array_walk(
    $arr2, 
    function (&$val ,$key) use ($arr1){
        if (isset($arr1[$key])) {
            $val = $arr1[$key];
        } else {
            $val = '';
        }
    }
);

print_r($arr2);
//Array
//(
//[a] => XL
//[b] =>  
//)

请在此处查看:https://3v4l.org/B7G5p

答案 1 :(得分:0)

如果我理解你的问题,应该这样做:

$out = array_merge(
    $arr2,
    array_fill_keys(array_keys($arr2), ''),
    $arr1
);

答案 2 :(得分:0)

另一个oneliner解决方案:

$arr2 = array_replace(array_map(function($n){return "";}, $arr2), $arr1);

https://3v4l.org/cgBB1