0

我的应用程序需要一组值。如果未提供这些值,我想用默认值填充它们。例如,如果我的应用需要三个值

$default_vals = array('foo','bar','baz');
$given_vals = array('faz',NULL);

我需要结果:

$combined = array('faz','bar','baz')

基本上用默认值填充缺少的数组索引。

现在快 5:00 和大脑油炸。我认为这可以通过 array_function() 像 array_intersect() 或 merge() 轻松完成。

谢谢。

编辑:顺便说一句.. $given_vals 可能包含与 $default 相同的值,因此即使是这种情况,解决方案也应该有效。

4

1 回答 1

4

您需要NULL先从输入中过滤 s,然后您可以执行所谓的数组联合(数组联合运算符是+,请参阅数组运算符文档):

$result = array_filter($given_vals) + $default_vals;

请注意,array_filterDocs也会删除诸如FALSE或空字符串之类的值。所以我不能 100% 确定这是否适合您的需求。如果没有,请使其更具体:

$result = array_filter($given_vals, function($v) {return !is_null($v);}) 
          + $default_vals;
ksort($result);
于 2012-08-07T22:54:20.320 回答