Php 在div中每三项换行一次,即使元素计数不除以3也要完成
我正在处理一个相当简单的Php 在div中每三项换行一次,即使元素计数不除以3也要完成,php,foreach,Php,Foreach,我正在处理一个相当简单的foreach循环,它输出一个链接列表: foreach ($pages as $page){ echo '<a href="'.$page['guid'].'">'.$page['post_title'].'</a>'; } 如您所见,它在.grid中每三分之一的项都进行包装。三分之一的项和一个新的ul 但是我不想基于3的计数器来匹配它,因为当项目数不能被3整除时(例如8项目),这将失效 我试图使用模运算符来分隔每3项,但我似乎得到了嵌套
foreach
循环,它输出一个链接列表:
foreach ($pages as $page){
echo '<a href="'.$page['guid'].'">'.$page['post_title'].'</a>';
}
如您所见,它在.grid中每三分之一的项都进行包装。三分之一的项和一个新的ul
但是我不想基于3
的计数器来匹配它,因为当项目数不能被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++;
}
foreach($page作为$page){
$page=(数组)$page;
回音“”;
如果($counter&&$counter%3==0){
回声“”;
}
$counter++;
}
在中,你知道如何正确地每3个项目(或在末尾)进行一次换行吗?你只需要在循环末尾附加一些条件来检查循环在哪里中断
e、 g
array\u chunk($array,3)我喜欢@splash58的解决方案:将线性数组转换为数组数组,然后使用两个嵌套的foreach()
loops.Yes。它提供了良好的结构和包装位置elements@splash58你能按照上面的代码展示你的解决方案吗?我无法准确计算array\u chunk
如何划分data@Francesca这与您的数据无关。这段代码从一个tds数组构建一个表,但是,我希望,这个想法很清楚
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++;
}
while(...) {
... logic to start a new div if necessary
... output a row of data
... logic to end a full div
}
if (loop ended with open div) {
... end the final div
}