4 回答

TA貢獻1828條經(jīng)驗 獲得超3個贊
您可以用來array_reduce
計算乘積,將中間值與0
乘法之前進行比較:
$array = [1, 4, 3, 0, 5];
$product = array_reduce($array, function ($c, $v) { return $c * ($v == 0 ? 1 : $v); }, 1);
echo $product;
輸出:
60
或者,使用array_filter
刪除0
值,然后array_product
在結果上使用(注意這不會修改原始數(shù)組):
$product?=?array_product(array_filter($array)); echo?$product;
輸出:
60
另請注意,因為您只想刪除布爾上下文中0
的值;false
您不需要 的回調(diào)函數(shù)array_filter
。

TA貢獻1853條經(jīng)驗 獲得超6個贊
你可以試試這個。您可以使用array_reducefunction 和 pass1進行基數(shù)乘法。
function multiply($carry, $item){
if($item != 0){
$carry *= $item;
}
return $carry;
}
$array = [1,4,3,0,5];
var_dump(array_reduce($array,'multiply', 1)); // int(60)

TA貢獻1801條經(jīng)驗 獲得超16個贊
您可以使用array_filter它從數(shù)組中刪除零。
function exclude_zero($var)
{
if($var != 0)
{
return $var;
}
}
$a1=[1, 4, 3, 0, 5];
$result = [];
$result[] = array_filter($a1,"exclude_zero");
$result = array_product($result[0]);
echo $result;
輸出
60

TA貢獻1853條經(jīng)驗 獲得超18個贊
如果值不為 0,則可以循環(huán)遍歷數(shù)組并乘以其中的值。
$arr = [1, 4, 3, 0, 5];
$value = 1;
foreach($arr as $val){
if($val !== 0){
$value *=$val;
}
}
echo $value;
//this will return 60
array_product您可以使用和的組合array_filter來獲得答案。
$product = array_product(array_filter($array));
echo $product;
//this will return 60.
- 4 回答
- 0 關注
- 212 瀏覽
添加回答
舉報