【发布时间】:2015-08-04 14:23:14
【问题描述】:
我正在通过一个相当简单的foreach 循环来输出链接列表:
foreach ($pages as $page){
echo '<a href="'.$page['guid'].'">'.$page['post_title'].'</a>';
}
目前有8项正在输出。
我需要包装这些项目,使它们看起来像这样:
<div class="grid one-third">
<ul>
<li>Sitemap</li>
<li>Sitemap</li>
<li>Sitemap</li>
</ul>
</div>
<div class="grid one-third">
<ul>
<li>Sitemap</li>
<li>Sitemap</li>
<li>Sitemap</li>
</ul>
</div>
<div class="grid one-third">
<ul>
<li>Sitemap</li>
<li>Sitemap</li>
</ul>
</div>
如您所见,它将every third item 包装在.grid .one-third 和一个新的ul 中
但我不想根据 3 的计数器来匹配它,因为当项目的数量不能被三整除(例如 8 项目)时,这会失败。
我正在尝试使用模运算符来分隔每 3 个项目,但我似乎得到了嵌套的 div,而不是在正确的位置关闭 div。到目前为止,这是我的解决方案:
foreach ($pages as $page){
$page = (array)$page;
echo '<li><a href="'.$page['guid'].'">'.$page['post_title'].'</a></li>';
if ($counter && $counter % 3 === 0){
echo '</ul><div class="grid one-third"><ul>';
}
$counter++;
}
有什么想法可以让我在<div class="grid one-third><ul> 中正确包装每 3 个项目(或最后包装)吗?
【问题讨论】:
-
array_chunk($array,3)
-
我喜欢@splash58 的解决方案:将你的线性数组转换为数组数组,然后使用两个嵌套的
foreach()循环。 -
是的。它给出了包装元素的精细结构和位置
-
@splash58 你能按照上面的代码展示你的解决方案吗?我无法准确计算
array_chunk如何划分数据 -
@Francesca 它与您的数据无关。该代码从一组 tds 构建一个表,但是,我希望这个想法很清楚 eval.in/411954