PHP合并数组如果为空

pba*_*auf 4 php arrays array-merge

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

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

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

    $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);
Run Code Online (Sandbox Code Playgroud)

当前结果:

    $arr = array( 
        'src' => '',
        'alt' => '',
        'title' => 'Facebook Share',
        'text' => 'FB Text',
        'misc' => '',
        );
Run Code Online (Sandbox Code Playgroud)

想要的结果:

    $arr = array( 
        'src' => site_url() . '/facebook_share.png',
        'alt' => 'Facebook',
        'title' => 'Facebook Share',
        'text' => 'FB Text',
        'misc' => '',
        );
Run Code Online (Sandbox Code Playgroud)

希望有人能帮忙。

Abr*_*ver 5

过滤掉空的然后合并:

$arr = array_merge($defaults, array_filter($properties));
Run Code Online (Sandbox Code Playgroud)

请记住,这array_filter将过滤掉空字符串'', 0, null, 的元素false