【问题标题】:Return zero value if division by zero is encountered in PHP如果在 PHP 中遇到被零除,则返回零值
【发布时间】:2019-04-28 22:00:59
【问题描述】:

我正在做一个项目,我将一个数组与另一个数组相除,问题是我正在划分的数组包含一些值为零的元素。这给了我警告“除以零”并返回值“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 )

【问题讨论】:

  • if ($b === 0) { return 0; } ?
  • 我不确定是什么问题。你试图除以零,这是你做不到的。使用为零的$b 值进行代码处理。

标签: php arrays divide-by-zero


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-30
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 2021-11-24
    相关资源
    最近更新 更多