PHP array_merge空值总是少于优先级

时间:2015-12-18 08:12:19

标签: php arrays array-merge

我的目标是合并两个不同的阵列。

我有桌子“a”& “B”。 表“a”中的数据更具优先性。

问题:如果“a”中的某个键包含空值,我想从表“b”中取一个。

这是我的代码:

<?php

$a = array('key1'=> "key1 from prioritar", 'my_problem'=> "");

$b = array('key1'=> "key1 from LESS prioritar", 'key2'=>"key2 from LESS prioritar", 'my_problem'=> "I REACHED MY GOAL!");

$merge = array_merge($b, $a);

var_dump($merge);

有没有办法在一个函数中执行此操作而不执行类似下面的操作?

foreach($b as $key => $value)
{
  if(!array_key_exists($key, $a) || empty($a[$key]) ) {
    $a[$key] = $value;
  }
}

2 个答案:

答案 0 :(得分:5)

您可以使用YourPointarray_replace

array_filter

结果将是:

$mergedArray = array_replace($b, array_filter($a));

答案 1 :(得分:3)

只需array_filter() $a即可删除任何''值的项目。

$merge = array_merge($b, array_filter($a));