获取具有条件的数组的总值

时间:2016-05-13 14:13:56

标签: php

我需要得到所有数字大于或等于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循环。

3 个答案:

答案 0 :(得分:2)

这是一个快速的方法:

$total = array_sum(array_filter($aReeks, function($n) { return $n > 0; }));
  • 过滤数组大于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];
}