我需要得到所有数字大于或等于0的数组的总值。 这是数组
$aReeks = array(23,245,1,2,12,-10,46,6,66,9999,-55,348,56,6,66,983);
这是我到目前为止的代码,但它只显示数组的最大数量,并且不计算值并显示总数。
$totaal = 0;
for($y=0; $y < count($aReeks); $y++)
{
if($totaal < $aReeks[$y] && $aReeks[$y] > 0)
$totaal = $aReeks[$y];
}
我必须使用for循环。
答案 0 :(得分:2)
这是一个快速的方法:
$total = array_sum(array_filter($aReeks, function($n) { return $n > 0; }));
哦,我现在看到“我必须用for循环来做。”,所以我不会接受你想象的作业。
答案 1 :(得分:1)
$aReeks = array(23,245,1,2,12,-10,46,6,66,9999,-55,348,56,6,66,983);
$total=0;
for($i =0 ; $i< count($aReeks) ; $i++)
{
if($aReeks[$i]>=0)
{
$total+= $aReeks[$i];
}
}
echo $total ;
?>
输出
11859
答案 2 :(得分:0)
你犯了两个重大错误,一个是if
条件,$totaal < $aReeks[$y]
你完全不需要这个检查。其次,而不是将每个项目的值总计为所有先前项目的总和......您只需将值分配给循环内的$totaal
变量。
$aReeks = array(23,245,1,2,12,-10,46,6,66,9999,-55,348,56,6,66,983);
$totaal = 0;
for($y=0; $y < count($aReeks); $y++)
{
if($aReeks[$y] > 0)
$totaal = $totaal + $aReeks[$y];
}