html页面foreach循环如何分段?
                        
                            时间:2021-07-01 10:21:17
                            帮助过:34人阅读
							                        
                     
                    
                    html页面foreach循环如何分段?如图所示,比如第一列读取5个换一个段落在读5个这样的效果,求解答!谢谢  
   【CSDN】大侠~~~  
 高端大气上档次,  
 低调奢华有内涵。  
 奔放洋气有深度,  
 狂拽炫酷?炸天。。。    
回复讨论(解决方案)
   直接foreach 计数 或者用array_chunk 分段都是可以实现的 
   定义一个变量$p=0; 每次循环完$p++;  
 if($p%4==0) 分段. 
   直接foreach 计数 或者用array_chunk 分段都是可以实现的  
  
  
 我现在是用计数的,效果不理想,分页不方便,所以想截取,  
  
 求:array_chunk 实例 
   http://www.w3school.com.cn/php/func_array_chunk.asp 
   不一定非要拆分数组或计数  
 只需将每个条目定宽并浮动,即可在外容器内分栏排列了  
 只不过次序是 从左到右,从上到下  
 而不是你示意的 从上到下,从左到右 
     
 
  
   - 1 
   
   - 2 
   
   - 3 
   
   - 4 
   
   -  5
   
   - 6 
   
   - 7 
   
   - 8 
   
   - 9 
   
   - 10 
   
   - 11 
   
   -  12
   
   -  13
   
   - 14 
   
   - 15 
   
 
       这是在谷歌浏览器下的现实。设置好ul和li的宽度就可以实现任意列了  
 写样式要注意浏览器的兼容性问题,譬如ie的忘记那个版本了是不支持inline-block的,需要写hack    
 多行多列最好不要用列表,用table比较省事  
 test.php     
  
              $arr=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14);  
          $has_n_cols=3;  //现实几列  
          $count=count($arr);  
          $timer=1;  
          foreach($arr as $value)  
          {  
                 if($timer%$has_n_cols==1)  
                  {  
                     echo "\n";  
                  }  
       
                  echo "\n$value | ";  
                 if($timer%$has_n_cols==0 or $timer==$count)  
 {  
                      echo "\n
";  
                 }  
             $timer++;  
          }  
  
     ?>  
  
 
        不知道楼主有没有在用smarty模板技术 如果在用的话,给foreach起个名字  
 <{foreach form=$arr name=name1 ....}>  
 <{if $smarty.foreach.name1.iteration % 5 ==0}>..(每循环5次 做什么 换行或者其他)..<{/if}>  
 <{/foreach}> 
   我觉得浮动的方式是最好的。  
  
         介个啊 css布局好了 直接输出到底。。。 
   直接一个if判断即可,每隔5列就换行,换行的话,直接tr标签。 
     
 
  
   - 1 
   
   - 2 
   
   - 3 
   
   - 4 
   
   -  5
   
   - 6 
   
   - 7 
   
   - 8 
   
   - 9 
   
   - 10 
   
   - 11 
   
   -  12
   
   -  13
   
   - 14 
   
   - 15 
   
 
       这是在谷歌浏览器下的现实。设置好ul和li的宽度就可以实现任意列了  
 写样式要注意浏览器的兼容性问题,譬如ie的忘记那个版本了是不支持inline-block的,需要写hack    
 多行多列最好不要用列表,用table比较省事  
 test.php     
  
              $arr=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14);  
          $has_n_cols=3;  //现实几列  
          $count=count($arr);  
          $timer=1;  
          foreach($arr as $value)  
          {  
                 if($timer%$has_n_cols==1)  
                  {  
                     echo "\n";  
                  }  
       
                  echo "\n$value | ";  
                 if($timer%$has_n_cols==0 or $timer==$count)  
 {  
                      echo "\n
";  
                 }  
             $timer++;  
          }  
  
     ?>  
  
 
  谢谢你的回答,我弄好了