Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将php数组中的NaN、INF值更改为0_Php_Arrays_For Loop - Fatal编程技术网

将php数组中的NaN、INF值更改为0

将php数组中的NaN、INF值更改为0,php,arrays,for-loop,Php,Arrays,For Loop,因此,我在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,

因此,我在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);

如何将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);

您可以使用三元:
$growthrate[]=($arr[$i-1]!==0)$arr[$i]/$arr[$i-1]:0如我所见,如果($arr[$I-1]!==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);