2012-07-31 48 views
0

循环因此,我希望做到的是:内循环使用PHP

<div class="product-box"> 
    <ul class="product-list"> 

    <li><a href="http://sauritchsurfboards.com/longboards.html" title="Surfboards _ San Diego Surfboard Shapers _ Sauritch Surfboards-2" target="_blank"><span>Surfboards _ San...</span> 
    </a></li> 

    <li><a href="http://sauritchsurfboards.com/longboards.html" title="Surfboards _ San Diego Surfboard Shapers _ Sauritch Surfboards-2" target="_blank"><span>Surfboards _ San...</span></a></li> 

    <li><a href="http://sauritchsurfboards.com/longboards.html" title="Surfboards _ San Diego Surfboard Shapers _ Sauritch Surfboards-2" target="_blank"><span>Surfboards _ San...</span></a></li> 

    <li><a href="http://sauritchsurfboards.com/longboards.html" title="Surfboards _ San Diego Surfboard Shapers _ Sauritch Surfboards-2" target="_blank"><span>Surfboards _ San...</span></a></li> 

    <li><a href="http://sauritchsurfboards.com/longboards.html" title="Surfboards _ San Diego Surfboard Shapers _ Sauritch Surfboards-2" target="_blank"><span>Surfboards _ San...</span></a></li> 

    <li><a href="http://sauritchsurfboards.com/longboards.html" title="Surfboards _ San Diego Surfboard Shapers _ Sauritch Surfboards-2" target="_blank"><span>Surfboards _ San...</span></a></li> 

    </ul> 
</div> 

我有一个$griditems这是从数据库中排列。

我想显示6。产品-box'es 6 <li>的内线。这就是$griditems

通常情况下,我只想做了:

<div class="product-box"> 
    <ul class="product-list"> 
<?php 
$count=1; 
foreach($griditems as $item) 
{ 
    if($count == 6) { break; } 
?> 
<li><a>.....</a></li> 
<?php 
$count++; 
} 
?> 
</ul> 
</div> 

但是,这是行不通的在这种情况下,因为我希望有6个这样的.product-box类,并且在每个.product-box中应该是这6个项目,它们应该从彼此继续而不是重复存在于$griditems阵列中的前6个。

我该怎么做?

+0

请纠正我,如果我误解了你的问题,但你试图让每个6项单独列出,所有来'$ griditems'? – Matt 2012-07-31 17:29:08

回答

1

您可以使用array_chunk分裂该数组转换为一定的最大长度的子数组。

$chunks = array_chunk($griditems, 6); 
foreach($chunks as $chunk) { 
    echo "<div><ul>"; 
    foreach($chunk as $item) echo "<li>".$item."</li>"; 
    echo "</ul></div>"; 
} 

顺便说一句,这不是伟大实践中使用的HTML元素只容纳一个单一的,其他HTML元素,所以你的DIV可能superflous。

0

你想用mod运算符(%)来检查每六个项目,然后关闭现有箱,并开始一个新的,这样的事情:

?> 
<li><a>.....</a></li> 
<?php 
    if ($count % 6 == 0) { ?> 
    </ul> 
    </div> 
    <div class="product-box"> 
    <ul class="product-list"> 
<?php } 
... 
0

我可能误解了你的问题,但我认为这将有助于:

$count = 0; 
echo "<ul>" 
foreach($griditems as $item) { 
    if (++$count % 6 == 0) { 
     echo "</ul><ul>"; 
    } 
    echo "<li><a>....</a></li>"; 
} 
echo "</ul>";