2016-05-13 10 views
2

Ich brauche die größte gerade Zahl aus diesem Array mit einer For-Schleife. Ich weiß, wie man die höchste Zahl aus der Schleife bekommt, aber es ist nicht einmal.Erhalten der höchsten geraden Zahl aus einem Array

Dies ist der Code, den ich habe bisher:

<?php 
// array aangemaakt 
$aReeks = array(23, 245, 1, 2, 12, -10, 46, 6, 66, 9999, -55, 348, 56, 6, 66, 983); 
$resultaat = 0; 

for ($i = 0; $i < count($aReeks); $i++) { 
    if ($resultaat < $aReeks[$i]) 
      $resultaat = $aReeks[$i]; 
} 

echo $resultaat; 

?> 
+2

die ungeraden Werte filtern, und dann max() verwenden, : '$ maxValue = max (array_filter ($ aReeks, function ($ wert) {return $ value% 2 == 0;}));' –

+0

Oder (für zukünftige Generationen) mit der möglichen neuen PHP 7.1 Syntax: '$ maxValue = array_filter ($ aReeks, Funktion ($ Wert) {return $ Wert% 2 == 0; }) |> max ($$); ' –

Antwort

8
if($resultaat < $aReeks[$i] && $aReeks[$i] % 2 == 0) 

Modulo Division durch zwei Null -> gerade Zahl

+0

Vielen Dank! –

2

die höchsteungerade Zahl in einer finden array können Sie array_filter und max verwenden.

$aReeks = array(23,245,1,2,12,-10,46,6,66,9999,-55,348,56,6,66,983); 
echo(max(array_filter($aReeks, function($var){return(!($var & 1));}))); 
//348 

Wenn Sie brauchen nur zu finden, wenn eine Zahl sogar oder ungerade, können Sie verwenden:

//if Even Number 
$number = "222"; 
if(!($number & 1)){...} 

//if Odd Number 
$number = "221"; 
if($number & 1){...} 
+1

upvote für Lösung ohne Zyklen :) – Jimmmy

Verwandte Themen