2016-05-13 9 views
-3

ich den Gesamtwert dieser Anordnung aller Zahlen größer oder gleich 0 Dies ist das ArrayErste Gesamtwert eines Arrays mit Bedingung

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

Dies ist der Code bekommen muss ich so haben weit, aber es zeigt nur die höchste Nummer des Arrays und zählt die Werte nicht hoch und zeigt die Summe an.

$totaal = 0; 
     for($y=0; $y < count($aReeks); $y++) 
     { 
      if($totaal < $aReeks[$y] && $aReeks[$y] > 0) 
      $totaal = $aReeks[$y]; 
     } 

Ich muss es mit einer for-Schleife tun.

Antwort

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 ; 
?> 

Ausgabe

+0

Vielen Dank! –

+0

Wenn die Antwort hilfreich ist, dann akzeptieren Sie es. So kann es für andere hilfreich sein. –

0

Sie sind zwei große Fehler macht man in if Zustand ist die $totaal < $aReeks[$y] Sie nicht brauchen, diese Überprüfung alle ist. Zweitens, anstatt den Wert jedes Elements auf die Summe aller vorherigen Elemente zu summieren ... weisen Sie einfach den Wert der Variablen $totaal innerhalb der Schleife zu.

$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]; 
} 
2

Hier ist ein schneller Weg:

$total = array_sum(array_filter($aReeks, function($n) { return $n > 0; })); 
  • Filter das Feld für Werte größer als 0
  • Sum, dass Array

Oh, ich sehe jetzt die „Ich habe um es mit einer for-Schleife zu machen. ", damit das für deine Hausaufgaben nicht angenommen wird, stelle ich mir vor.

Verwandte Themen