比较数组并丢弃空值? [复制]

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

以上是关于比较数组并丢弃空值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

比较2个数组并列出差异 - Swift

javascript js求和2个数组并返回一个新数组

展平 3D NumPy 数组中的内部元组并作为浮点数保存到 CSV

C# 比较二个数组并找出相同或不同元素的方法

Python:元组列表:比较所有元组并检索元组的元素不等于任何其他元组的元组

如何从数组中删除空值? [复制]