2015-05-14 33 views
0

我有這段代碼將所有結果顯示爲圖標,但它顯示每個循環中將近50個圖標。我搜索了許多方法,在每個循環中將其更改爲3個圖標失敗。我怎樣才能做到這一點?如何在PHP中將foreach循環限制爲3個結果圖標?

foreach ($categoryItems as $item) { 

    if ($item['categoryId'] != $category['id']) 
     continue; 

    $itemXML = $items->findItemInXML($item['itemId']); 
    $subContent .= "<a class=\"thumbnail\" ><img src=\"images/gameIcons/".$items->getIcon($itemXML).".png\" alt=\"Item icon\" align=\"top\" />"; 
} 

$subContent .= "</td> 
<td class=\"tablePreview ui-state-hover\"> 
<a href=\"showMore\">More information</a> 
</td> 
</tr>"; 
+0

爲什麼不使用'for'循環呢? –

回答

1

既然你有continue條件,我建議使用for循環是不太相關。相反,您可以使用counter variable來計算已打印多少個圖標。一旦該計數器達到3,就會打斷循環。 (沒測試過)

$printedIcons = 0; 
foreach ($categoryItems as $item) { 

    if($printedIcons == 3) 
     break; 
    if ($item['categoryId'] != $category['id']) 
     continue; 

    $itemXML = $items->findItemInXML($item['itemId']); 
    $subContent .= "<a class=\"thumbnail\" ><img src=\"images/gameIcons/".$items->getIcon($itemXML).".png\" alt=\"Item icon\" align=\"top\" />"; 
    $printedIcons++; 
} 
0

您可以使用count變量和while循環來迭代,直到執行第3個圖標。

foreach ($categoryItems as $item) { 

    $count=0; 
    while(count<=2) { 
    if ($item['categoryId'] != $category['id']) 
    continue; 

    $itemXML = $items->findItemInXML($item['itemId']); 
    $subContent .= "<a class=\"thumbnail\" ><img src=\"images/gameIcons/".$items->getIcon($itemXML).".png\" alt=\"Item icon\" align=\"top\" />"; 
    } 
    count++; 
    } 
}