合并两个数组而不替换为空

时间:2020-01-11 11:26:46

标签: php arrays

如果替换为null /空,是否可以合并两个数组而不替换元素?

按如下所示使用array_merge,将没有数据的项目替换为空:

$ original_array:(合并前)

Array ( 
    [test1] => Test 1
    [test2] => Test 2
) 

$ new_array:(合并后)

Array ( 
    [test1] => Test 1
    [test2] =>  
) 

使用foreach并用条件重建数组是唯一的选择吗?

我想发生的事情的示例:

如果合并时'test2'为空,则$ original_array ['test2']项目将保留为'Test 2'值。

如果合并时'test2'不为空,则将使用$ new_array ['test2']项目。

1 个答案:

答案 0 :(得分:2)

如果您使用array_filter()-这将删除所有 empty 元素,然后合并结果...

array_merge($a1, array_filter($a2))

唯一的问题是array_filter()还将删除0和''元素,因此您可能要更具体地处理它...

print_r(array_merge($a1, 
    array_filter($a2, function($data) { 
                          return $data !== null ; 
                      }
    )));