html页面foreach循环如何分段?如图所示,比如第一列读取5个换一个段落在读5个这样的效果,求解答!谢谢【CSDN】大侠~~~
高端大气上档次,
低调奢华有内涵。
奔放洋气有深度,
狂拽炫酷屌炸天 

解决方案 »

  1.   

    直接foreach 计数 或者用array_chunk 分段都是可以实现的
      

  2.   

    定义一个变量$p=0; 每次循环完$p++;
    if($p%4==0) 分段.
      

  3.   

    我现在是用计数的,效果不理想,分页不方便,所以想截取,求:array_chunk 实例
      

  4.   

    http://www.w3school.com.cn/php/func_array_chunk.asp
      

  5.   

    <style type="text/css">
       ul,li{padding:0px;margin:0px;}
       ul {list-style:none;width:250px; background:green;}
       li {display:inline-block; width:50px; background:red;}
    </style>
    <ul>
      <li>1 </li>
      <li>2 </li>
      <li>3 </li>
      <li>4 </li>
      <li> 5</li>
      <li>6 </li>
      <li>7 </li>
      <li>8 </li>
      <li>9 </li>
      <li>10 </li>
      <li>11 </li>
      <li> 12</li>
      <li> 13</li>
      <li>14 </li>
      <li>15 </li>
    </ul>
    这是在谷歌浏览器下的现实。设置好ul和li的宽度就可以实现任意列了
    写样式要注意浏览器的兼容性问题,譬如ie的忘记那个版本了是不支持inline-block的,需要写hack多行多列最好不要用列表,用table比较省事
    test.php
      <table>
       <?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<tr>";
                     }
        
                     echo "\n<td>$value</td>";
                    if($timer%$has_n_cols==0 or $timer==$count)
    {
                         echo "\n</tr>";
                    }
                $timer++;
             }    ?></table>
      

  6.   

    不知道楼主有没有在用smarty模板技术 如果在用的话,给foreach起个名字
    <{foreach form=$arr name=name1 ....}>
    <{if $smarty.foreach.name1.iteration % 5 ==0}>..(每循环5次 做什么 换行或者其他)..<{/if}>
    <{/foreach}>
      

  7.   

    我觉得浮动的方式是最好的。<style type="text/css">
       ul,li{padding:0px;margin:0px;}
       ul {list-style:none;width:156px; background:green;}
       li {width:50px; background:red;float:left;margin-left:10px;display:inline;}
    </style>
    <ul>
      <li>1 </li>
      <li>2 </li>
      <li>3 </li>
      <li>4 </li>
      <li>5</li>
      <li>6 </li>
      <li>7 </li>
      <li>8 </li>
      <li>9 </li>
      <li>10 </li>
      <div style="clear:both;"></div>
    </ul>
     
      

  8.   

    介个啊 css布局好了 直接输出到底
      

  9.   

    直接一个if判断即可,每隔5列就换行,换行的话,直接tr标签。