Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在div中每三项换行一次,即使元素计数不除以3也要完成_Php_Foreach - Fatal编程技术网

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
    }