2015-05-14 62 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++; 
    } 
}