比较数组并丢弃空值? [复制]
Posted
技术标签:
【中文标题】比较数组并丢弃空值? [复制]【英文标题】:Compare arrays and discard empty values? [duplicate] 【发布时间】:2016-12-19 15:03:30 【问题描述】:我有两个数组,我想返回一个只包含我模板中的键的数组:
$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')
【讨论】:
这将在这种情况下删除年龄 ['name' => 'john', 'age'=> '0']; 你确定吗? sandbox.onlinephpfunctions.com/code/… 是的,我是。你需要一个回调函数来处理这个 如果您没有先运行代码,请不要投反对票……@jonju 的评论完全错误且令人困惑。检查我在上面发给你的链接。它按预期运行 我没有投反对票。为什么这是错误的? 如果没有提供回调,所有等于 FALSE 的数组条目(请参阅转换为布尔值)都将被删除。。 php.net/manual/en/function.array-filter.php以上是关于比较数组并丢弃空值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
展平 3D NumPy 数组中的内部元组并作为浮点数保存到 CSV