2012-07-31 59 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>";