PHP合并数组如果为空

标签 php arrays array-merge

有没有一种很好的方法可以在 PHP 中合并两个数组。

我的 $defaults -array 包含默认值。如果$properties -array 包含一个空字符串我想使用来自 $defaults 的值-大批。

到目前为止,我的代码如下所示:

    $defaults = array( 
        'src' => site_url() . '/facebook_share.png',
        'alt' => 'Facebook',
        'title' => 'Share',
        'misc' => '',
        );


    $properties = array( 
        'src' => '',
        'alt' => '',
        'title' => 'Facebook Share',
        'text' => 'FB Text', //further properties
        );

$arr = array_merge( $defaults, $properties);
var_dump($arr);

当前结果:
    $arr = array( 
        'src' => '',
        'alt' => '',
        'title' => 'Facebook Share',
        'text' => 'FB Text',
        'misc' => '',
        );

预期结果:
    $arr = array( 
        'src' => site_url() . '/facebook_share.png',
        'alt' => 'Facebook',
        'title' => 'Facebook Share',
        'text' => 'FB Text',
        'misc' => '',
        );

希望有人能帮忙。

最佳答案

过滤掉空的然后合并:

$arr = array_merge($defaults, array_filter($properties));
请记住,array_filter将过滤掉空字符串的元素 '' , 0 , null , false .

关于PHP合并数组如果为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26762681/

相关文章:

php - 将 PHP 变量传递给 Javascript 函数(特定代码错误)

c - 如何避免 C 数组中的重复元素输入?

c - 数组理解:

php - 一个更好的 php array_merge

arrays - JQ - 合并两个数组

c++ - 重复过滤列表 - 列表去重

php - 从我的站点登录到 gmail

javascript - 上一页 推荐到我的网站

php - 我怎样才能获得 PHP(部署)的简单性但 Perl 的强大功能?

java - 是否可以在循环中增加数组索引?