Getting total value of an array with condition

前端 未结 3 589
春和景丽
春和景丽 2021-01-29 15:22

I need to get the total value of this array of all the numbers above or equal to 0. This is the array

$aReeks = array(23,245,1,2,12,-10,46,6,66,9999,-55,348,56,6         


        
相关标签:
3条回答
  • 2021-01-29 15:57
    $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 ;
    ?>
    

    Output

    11859

    0 讨论(0)
  • 2021-01-29 16:05

    Here's a quick way:

    $total = array_sum(array_filter($aReeks, function($n) { return $n > 0; }));
    
    • Filter the array for values greater than 0
    • Sum that array

    Oh I now see the "I have to do it with a for loop.", so this won't be accepted for your homework I imagine.

    0 讨论(0)
  • 2021-01-29 16:05

    You are making 2 major mistakes one is in if condition which is $totaal < $aReeks[$y] you don't need this check at all. Secondly rather than summing up the value of each item to the total of all previous items... you are simply assigning the value to the $totaal variable inside the loop.

    $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];
    }
    
    0 讨论(0)
提交回复
热议问题