首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP预先将每9个项目排序为列表和div。

PHP预先将每9个项目排序为列表和div。
EN

Stack Overflow用户
提问于 2013-07-26 13:17:39
回答 7查看 490关注 0票数 1

我目前正在努力将一个foreach循环排序到它自己的div和ul中,下面是我现在的内容:

代码语言:javascript
复制
<ul class="thumbnails parts-page">
<?php $show = false; ?>
<?php foreach ($this->items as $item) : ?>
    <?php if($item->state == 1 || ($item->state == 0 && JFactory::getUser()->authorise('core.edit.own',' com_parts'))):
        $show = true;
    ?>
        <li class="span4">
            <a href="<?php echo $item->brand_link; ?>" style="background:url(<?php echo $item->brand_image; ?>) no-repeat center center #FFF; "  class="thumbnail parts" target="_blank">
            </a>
        </li>
    <?php endif; ?>

<?php endforeach; ?>
</ul>

基本上,这会产生:

代码语言:javascript
复制
<ul class="thumbnails parts-page">
            <li class="span4">
            <a href="http://www.canecreek.com/" style="background: url('/torqzone/images/brands/cane-creek.png') no-repeat center center #FFF; "  class="thumbnail parts" target="_blank">
            </a>
        </li>

            <li class="span4">
            <a href="http://www.amclassic.com/en/" style="background: url('/torqzone/images/brands/american-classic.png') no-repeat center center #FFF; "  class="thumbnail parts" target="_blank">
            </a>
        </li>

            <li class="span4">
            <a href="http://www.avid.com/US/" style="background: url('/torqzone/images/brands/avid.png') no-repeat center center #FFF; "  class="thumbnail parts" target="_blank">
            </a>
        </li>
</ul>

但我需要把它分开,这样每9个项目都有自己的:

代码语言:javascript
复制
<ul class="thumbnails parts-page">
9ITEMS
</ul>

我尝试过各种解决方案,我在网上找到了,但似乎没有任何效果。

任何帮助都非常感谢。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-07-26 13:32:37

一个非常容易理解的解决方案是使用块块

代码语言:javascript
复制
<?php foreach (array_chunk($this->items, 9) as $items): ?>
  <ul>
    <?php foreach ($items as $item): ?>     
      <!-- your code -->
    <?php endforeach; ?>
  </ul>
<?php endforeach; ?>

是的,这是一个额外的循环,但它的可读性更强。

票数 2
EN

Stack Overflow用户

发布于 2013-07-26 13:24:57

使用这样的东西:

代码语言:javascript
复制
echo '<ul ...>';
$i = 0;
foreach ( ...... ) {
  if (++$i % 9 == 0) echo '</ul><ul ....>';

  // your code here

}
echo '</ul>';
票数 1
EN

Stack Overflow用户

发布于 2013-07-26 13:20:52

在每次运行循环时,设置一个等于1的变量。如果它> 9,创建一个新ul,否则将其添加到旧ul中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17882350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档