2016-08-12 41 views
0

我有两个数组,我想返回只包含在模板中的数组中的键:比较数组并放弃空值?

$protected template = ['name' => 'john', 'age'=> 10]; 

public function merge($params){ 

    $arr = array_intersect_key($params, $this->template); 

} 

上述作品,但我也想过滤掉键,该值为空。

所以,如果我通过在:

[name => 'jeff', age => ''] 

它只会筛选出数组:

[name => 'jeff'] 

有没有办法做到这一点还是这将是最好只通过循环数组并做一个空的检查?

回答

1

您可以使用array_filter删除空的元素。

$template = array_filter($template, 'strlen') 
+2

这会在这种情况下删除年龄['name'=>'john','age'=>'0']; – jonju

+1

你确定吗? http://sandbox.onlinephpfunctions.com/code/d90c1c83f0a44668b5240cfd02d826576b838d49 – Whiteulver

+0

是的,我。你需要一个回调函数来处理这 – jonju