2017-06-05 2 views
0

Ich versuche, die untere (aber nicht 0) von zwei Zahlen aus dem folgenden Code zu extrahieren. Dieser Code wiederholt zweimal, wobei zwei Zahlen angegeben werden. Ich will nur den niedrigeren der beiden. Ich kann sehen, dass ich min (Array) verwenden sollte, aber ich kann nicht wirklich sehen, wo ich anfangen soll.Finden Sie den niedrigsten Wert von php foreach Schleifen

foreach ($objResult->ProductGroups as $objProductGroup) 
{ 
    if ($objProductGroup->hasProductQuote) 
    { 
     foreach ($objProductGroup->ProductQuotes as $objProductQuote) 
     { 
      if (!$objProductQuote->hasErrors) 
      { 
       printf("<div>&pound;%01.2f</div>", $objProductQuote->Figures->RegularPayment); 
       break; 
      } 
     } 
    } 
} 

Antwort

0

Statt die Zitate zu drucken, wie Sie sie bekommen, hängen Sie sie in ein Array. Dann können Sie danach min verwenden, um den niedrigeren der beiden zu drucken.

$quotes = []; 
foreach ($objResult->ProductGroups as $objProductGroup) 
{ 
    if ($objProductGroup->hasProductQuote) 
    { 
     foreach ($objProductGroup->ProductQuotes as $objProductQuote) 
     { 
      if (!$objProductQuote->hasErrors) 
      { 
       $quotes[] = $objProductQuote->Figures->RegularPayment; 
       break; 
      } 
     } 
    } 
} 
printf("<div>&pound;%01.2f</div>", min($quotes)); 
+0

Die fast hat es, aber dieser Code ist selbst mehrmals innerhalb der Seite und wenn die vorherigen min ($ Anführungszeichen) Ergebnis niedriger ist es zeigt, wie die nächste Schleife. – SteveAsh

+0

@SteveAsh Das sollte behoben werden, wenn Sie '$ quotes' vor jeder Runde neu initialisieren. Ich habe die Antwort aktualisiert. –

+0

Ja natürlich, vielen Dank. – SteveAsh

Verwandte Themen