PHP - 仅当array1中存在键时,才使用array2覆盖array1中的值

时间:2015-07-16 10:05:25

标签: php arrays

我想设置一个默认键和值的关联数组(array1); 如果提供了一个数组(array2),那么来自array1的所有索引都将被密钥匹配的array2覆盖。 array2中的任何其他键都不会添加到array1。

一种解决方案是运行循环并像这样执行$('#txtpass').on('input', function() { var shouldShowAlert = ($(this).val().length < 6); $("#passAlert").toggle(shouldShowAlert); });

array_key_exists

但是有没有这样做的PHP功能?

我试过的功能已经不能给我想要的结果了。

$new_array = $array1;

foreach ($array2 as $key => $value) {

    if(array_key_exists($key, $array1)){
        $new_array[$key] = $value; //overwrite default value
    } else {
        // new key, dont add 
    }
}

我正在寻找的结果将是

    $array1 = array(
        'one' =>'one',
        'two' => 'two',
        'three' => 'three',
        'four' => 'four'
    );
    $array2 = array(
        'two' => '2',
        'four' => '4',
        'six' => '6',
    );

    var_dump($array1+$array2);
    array (size=5)
        'one' => string 'one' (length=3)
        'two' => string 'two' (length=3)
        'three' => string 'three' (length=5)
        'four' => string 'four' (length=4)
        'six' => string '6' (length=1)

    var_dump(array_merge($array1,$array2));
    array (size=5)
        'one' => string 'one' (length=3)
        'two' => string '2' (length=1)
        'three' => string 'three' (length=5)
        'four' => string '4' (length=1)
        'six' => string '6' (length=1)

    var_dump(array_replace($array1,$array2));
    array (size=5)
        'one' => string 'one' (length=3)
        'two' => string '2' (length=1)
        'three' => string 'three' (length=5)
        'four' => string '4' (length=1)
        'six' => string '6' (length=1)

1 个答案:

答案 0 :(得分:4)

从第二个数组键获取,在第一个中显示,并替换第一个

中的值
var phantom = require('phantom');


phantom.create(function(ph) {
  ph.createPage(function(page) {
    page.open('https://www.facebook.com/login.php',
      function(status) {
        console.log('Opened site? %s', status);
        page.render("page.png");
        if (status !== 'success')
         {
        console.log('FAIL to load the address');
        }
        else
        {
        console.log('Success in fetching the page');
        another_funny(page, ph);
        ph.exit();
        }
     });
  });

}, {parameters:{'ssl-protocol':'any'}} );

function another_funny(page, ph) {
        console.log("like page");
}