php 在遍历数组时,如何进行大模块和小模块的循环

梦梦阁 发布于 2014/04/01 15:49
阅读 391
收藏 1
PHP

  大神们,看到我写的代码了吗,实际上我是想实现当有一个二维数组,在<ul>标签里面让<li>标签循环4个,如何超出了4个,就循环外面的<ul>标签,应该如何写呢?

我之前是这样写的:

<ul>
<?php  foreach($result as $key=>$value){
   if(($key+1)%4){ //我感觉有问题的
?>
  <li><?php echo $value['name'];?></li>
<?php  }}?>
</ul>



这样写肯定不对的,有什么方法吗
这个是我要实现的效果,有什么快速简便的方法吗

<ul>
  <li>aaaa</li>
  <li>bbbb</li>
  <li>cccc</li>
  <li>dddd</li>  
</ul>
<ul>
  <li>eeee</li>
  <li>ffff</li>
  <li>gggg</li>
  <li>eeee</li>  
</ul>
<ul>
  <li>aaaa</li>
  <li>eeew</li>
  <li>wwww</li>
  <li>eeee</li>  
</ul>
<ul>
  <li>gggg</li>
  <li>yyyy</li>
  <li>eeee</li>
  <li>ssss</li>  
</ul>



加载中
0
elson1024
elson1024


//这个就是你想要的结果
function mkul($data){
	$maxNum = 4;                   //最大显示数
	$str    = '';
	$n      = 0;
	$str    .= "<ul>";			   
	foreach($data as $d){
		if($n >= $maxNum){
			$str .= "</ul><ul>";
			$n = 0;
		}  
		$str .= "<li>{$d}</i>";
		$n += 1; 
	}
        while($maxNum-$n > 0){
		$str .= "<li></li>";
		$n += 1;
	}
				
	$str    .= "</ul>";
	return $str;
}
echo mkul(array('11111','11111','11111','11111',
                 '11111','11111','11111','11111',
                 '11111','11111','11111','11111',
                 '11111','11111'));




梦梦阁
梦梦阁
这个真的不错,我的效果实现了,非常感谢啊
0
自由自在的小鱼
自由自在的小鱼

<ul>
<?php $i=0;
foreach($result as $key=>$value){
   if($i>3){ break;}
?>
  <li><?php echo $value['name'];?></li>
<?php  $i++;}?>
</ul>






梦梦阁
梦梦阁
如果我想循环外层的<ul>标签,如何操作呢,里面的<li>第一次显示了4条,哪些大于3的数据,如何控制显示呢
0
吴小华
吴小华

<ul>
<?php 
$result = array(1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,4);
$count = count($result);
foreach($result as $key=>$value){

    if(($key+1)%5){
		echo "\t<li>".$key.$value."</li>\n";
	}
	 if(($key+1)%5==0 && $key+1<$count){
		echo "</ul>";
		echo "<ul>\n";
	 }

}
?>
</ul>




欣儿
欣儿
最后一个估计会有问题
0
自由自在的小鱼
自由自在的小鱼

<?php for($j=0;$j<10;$j++):?>
<ul>
<?php $i=0;
foreach($result as $key=>$value){
   if($i>3){ break;}
?>
  <li><?php echo $value['name'];?></li>
<?php  $i++;}?>
</ul>
<?php endfor;?>




梦梦阁
梦梦阁
回复 @自由自在的小鱼 : 就是一个表中的多条数据
自由自在的小鱼
自由自在的小鱼
回复 @梦梦阁 : 你的result内容是什么?我只是给你一个例子,ruslut要取不同的值
梦梦阁
梦梦阁
这个我试过了,始终是重复的那几条
0
欣儿
欣儿

$result有数据例子吗?

欣儿
欣儿
回复 @梦梦阁 : 知道是二位数组啊。但是感觉你说的给想要实现的有出入
梦梦阁
梦梦阁
就是一个二维数组啊
0
自由自在的小鱼
自由自在的小鱼

<ul>
<?php $i=0;
foreach($result as $key=>$value){
   if($i>3){ $i=0;
?>
</ul><ul>
<?php
}
   else {
?>
  <li><?php echo $value['name'];?></li>
<?php  $i++;}}?>
</ul>



0
龙上
龙上

<?php
    for($i=0;$i<20;)
    {
        $s = $i;
        $count = $s + 4;
        echo '<ul>';
        for(;$s < $count;$s++)
        {
            echo '<li></li>';
        }
        echo '</ul>';
        $i = $s;
    }



0
voov
voov

array_chunk()


0
voov
voov

$str = '';
foreach (array_chunk(range(1, 20), 4) as $kk => $vv) {
    $str .= '<ul>';
    foreach ($vv as $k => $v) {
       $str .= '<li>'.$v.'</li>';
    }
    $str .= '</ul>';
}
echo $str;



返回顶部
顶部