2017-06-05 88 views
0

我试图提取下面的代码产生的两个数字(但不是0)。这段代码循环两次给出两个数字。我只想要两个中的较低者。我可以看到,我应该使用min(数组),但我真的不知道从哪里开始。找到最低值的PHP foreach循环

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

回答

0

而不是按照你打印报价,将它们追加到数组。然后你可以使用min打印下面的两个。

$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

这差不多就是这样,但这段代码本身在页面内循环多次,如果前面的min($引号)的结果较低,它会显示为下一个。 – SteveAsh

+0

@SteveAsh如果您在每轮之前重新初始化'$ quotes',应该修复这个问题。我更新了答案。 –

+0

当然,非常感谢。 – SteveAsh