如何从 PHP 中的数组中删除 NaN?

How to remove NaN from array in PHP?

如何从 php 中的数组中删除 NaN 值?

$array = [1, 3, 5, 3, float(NaN), 4, float(NaN)];
$desired_result = [1, 3, 5, 3, 4];

为了删除任何其他元素,我找到了这个解决方案,但我无法让它对 NaN 起作用。

上下文:我正在从 rrd 数据库读取数据。我想计算多个数据条目的平均值,但至少其中一个是 float(NaN)。

使用array_filter to remove NaN with is_nan函数。

$array = [1, 3, 5, 3, float(NaN), 4, float(NaN)];
$filtered_array = array_filter($array, function ($element) {
    return !is_nan($element);
});

注意:这也将删除存储为字符串的数字,例如“21”将被删除。