php - 在 php 数组中将 NaN、INF 值更改为 0
问题描述
所以我在 PHP 中有一个数组,其中分别有以下值。
$arr = [1,2,0,0,5,6,7,8,9,10,7,5,7,6,4,7,4,6,4,7,1,15,35];
因此,当我在此应用增长率公式时。一些显示 NaN 和 INF 的值。我知道它的发生是因为0
我放入了数组中。
所以我需要用 0 或其他东西替换 NaN、INF 值,这样这些值就不会被跳过。
我尝试了很多方法。但它似乎不起作用。
这是我的代码: $growthrate = [];
$arr = [1,2,0,0,5,6,7,8,9,10,7,5,7,6,4,7,4,6,4,7,1,15,35];
for($i=1;$i<count($arr);$i++)
{
$growthrate[] = $arr[$i]/$arr[$i-1];
error_reporting(E_ERROR | E_PARSE);
}
print_r($growthrate);
在这里你可以看到我得到的输出:
Array ( [0] => 2 [1] => 0 [2] => NAN [3] => INF [4] => 1.2 [5] => 1.1666666666667 [6] => 1.1428571428571 [7] => 1.125 [8] => 1.1111111111111 [9] => 0.7 [10] => 0.71428571428571 [11] => 1.4 [12] => 0.85714285714286 [13] => 0.66666666666667 [14] => 1.75 [15] => 0.57142857142857 [16] => 1.5 [17] => 0.66666666666667 [18] => 1.75 [19] => 0.14285714285714 [20] => 15 [21] => 2.3333333333333 )
我该怎么做才能将 NaN 和 INF 值替换为 ) 或任何内容或使其成为例外。
解决方案
如果我的问题正确,只需检查除数是否不为 0。
<?php
$arr = [1,2,0,0,5,6,7,8,9,10,7,5,7,6,4,7,4,6,4,7,1,15,35];
$growthrate = [];
for($i=1;$i<count($arr);$i++) {
$growthrate[] = $arr[$i-1] ? $arr[$i] / $arr[$i-1] : -1; // -1 or whatever value you want...
}
print_r($growthrate);
推荐阅读
- java - Spring Cloud Config vs Spring Cloud Consul Config KV
- google-chrome-extension - Chrome 扩展程序:在扩展程序中导航时会自动创建新的历史记录
- python - Pandas:写入 Excel 在 Databricks 中不起作用
- algorithm - 我可以在扩展 (a + b) % k 时忽略最后一个 k 吗?
- r - 无法在 R-4.0.5 上安装 dplyr
- javascript - 如何使用浏览器和 Facebook 会话发送发布请求
- reactjs - Sentry:使用 React 时启用可读的堆栈跟踪
- installation - 在 Mac OS X 11.2.2 上使用 Anaconda 安装 PyGMO 期间的冲突
- c# - 在视图 C# MVC 中计算年龄
- android - Firebase身份验证未经许可更新用户配置文件