0

だから私が達成したいのは:

<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つの.product-boxが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>

ただし、この場合は機能しません。これらの.product-boxクラスを6つ作成し、各.product-box内にこれらの6つのアイテムを含める必要があります。これらのアイテムは互いに継続し、同じ最初の6つを繰り返さないようにする必要があります。$griditemsアレイに存在します。

これどうやってするの?

4

3 に答える 3

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は不要になる可能性があります。

于 2012-07-31T17:31:21.443 に答える
0

mod演算子(%)を使用して6つおきの項目をチェックしてから、既存のボックスを閉じて、次のような新しいボックスを開始します。

?>
<li><a>.....</a></li>
<?php
    if ($count % 6 == 0) { ?>
    </ul>
    </div>
    <div  class="product-box">
    <ul class="product-list">
<?php }
...
于 2012-07-31T17:28:13.097 に答える
0

私はあなたの質問を誤解したかもしれませんが、これは役立つと思います:

$count = 0;
echo "<ul>"
foreach($griditems as $item) {
    if (++$count % 6 == 0) {
        echo "</ul><ul>";
    }
    echo "<li><a>....</a></li>";
}
echo "</ul>";
于 2012-07-31T17:31:25.357 に答える