如果在PHP中被零除,则返回零值

时间:2019-04-28 22:01:00

标签: php arrays divide-by-zero

我正在一个项目中,我将一个数组除以另一个数组,而问题是我要与之拆分的数组包含一些值为零的元素。这给我警告“被零除”,并返回值“ INF”。我希望被零除的值尽可能返回零。我对编程很陌生,如果有人可以帮助我或提供一些解决方法的提示,我将不胜感激。下面是问题的简化情况。

    $arr1 = array(10, 20, 30);
    $arr2 = array(1, 2, 0);
    $arr3 = array_map(function ($a,$b) {return $a / $b;}, $arr1, $arr2);
    print_r($arr3);

因此输出当前为:

Array ( [0] => 10 [1] => 10 [2] => INF )

我想要的输出是:

Array ( [0] => 10 [1] => 10 [2] => 0 )

1 个答案:

答案 0 :(得分:1)

只需检查参数是否为零:

$arr1 = [10, 20, 30];
$arr2 = [1, 2, 0];
$arr3 = array_map(function ($a, $b) {
    if($b === 0) {
        return 0;
    }
    return $a / $b;
}, $arr1, $arr2);
print_r($arr3);