关于循环控制的问题?

请大家帮帮忙,这个循环应该怎么控制?

$a=array("黑龙江","吉林","辽宁","北京","上海","广东")

循环输出上边那个数组 输出效果是下面这样的,每两个应用同样的样式,这个用循环应该怎么控制?
<ul>
 
  <li class="h">黑龙江</li>
  <li class="h">吉林</li>
  <li class="n">辽宁</li>
  <li class="n">北京</li>
  <li class="s">上海</li>
  <li class="s">广东</li>


</ul>

作者: xiangnianziyou   发布时间: 2011-06-10

你的类名与名称没有关系,乍输出??

作者: yangball   发布时间: 2011-06-10

这个样式有什么规则吗?

作者: hechuanchuan   发布时间: 2011-06-10

引用 1 楼 yangball 的回复:
你的类名与名称没有关系,乍输出??


那应该怎样实现两两一样的效果呢? 求指点

作者: xiangnianziyou   发布时间: 2011-06-10

引用 2 楼 hechuanchuan 的回复:
这个样式有什么规则吗?


就是想实现第一个和第二个一样 第三个和第四个一样 如果想利用循环控制 那样式应该设置什么规则?

作者: xiangnianziyou   发布时间: 2011-06-10

$a=array("黑龙江","吉林","辽宁","北京","上海","广东");
$b=array('h','n','s');
$j=0;
foreach($a as $k=>$v)
{
  echo '<li class="',$b[$j];
  if ($k&1) $j++; 
  echo '">',$v,'</li>',PHP_EOL;
}

作者: snmr_com   发布时间: 2011-06-10

$a = array("黑龙江","吉林","辽宁","北京","上海","广东");
$d = array('h', 'n', 's');
foreach($a as $k=>$v) {
  $p = ($k & 6) / 2;
  echo "<li class=\"{$d[$p]}\">$v</li>\n";
}

<li class="h">黑龙江</li>
<li class="h">吉林</li>
<li class="n">辽宁</li>
<li class="n">北京</li>
<li class="s">上海</li>
<li class="s">广东</li>

作者: xuzuning   发布时间: 2011-06-10


PHP code

$arr = array('aaa', 'bbb', 'ccc','ddd','eee','fff','ggg');

$i = 1;
foreach($arr as $v) {
    echo $v . ' class: ' . ($i >2 ? '1' : '2') . '<br/>';
    $i = $i==4 ? 1 : $i+1;
}
/*
aaa class: 2
bbb class: 2
ccc class: 1
ddd class: 1
eee class: 2
fff class: 2
ggg class: 1
*/

作者: yangball   发布时间: 2011-06-10

我比较赞成5#使用奇偶判断,6#的有局限

作者: piaolankeke   发布时间: 2011-06-10

这个也可以:
PHP code

         $a=array("黑龙江","吉林","辽宁","北京","上海","广东");
     echo '<ul>';
     foreach($a as $k=>$v){
                if($k<2){ 
                  $a='h';
            }else if(1<$k && $k<4){
                       $a='n';
            }else{
                  $a='ss';
                }
             echo '<li class="'.$a.'">'.$v.'</li>';
     }
     echo '</ul>';

作者: jordan102   发布时间: 2011-06-10

PHP code

//既然大家利用数组的方法,我也来个。这个不用判断的了。。。。

$a=array("黑龙江","吉林","辽宁","北京","上海","广东");
$class = array('h','n','s');

$class = array_merge($class, $class); //复制一份
sort($class); // 排序好

foreach($a as $k=>$v) {
    echo $v . ' class : ' . $class[$k].'<br/>';
}
/*
黑龙江 class : h
吉林 class : h
辽宁 class : n
北京 class : n
上海 class : s
广东 class : s
*/

作者: yangball   发布时间: 2011-06-10

再来个通用的

<?php
$a = array("黑龙江","吉林","辽宁","北京","上海","广东");
$d = array('h', 'n', 's', 'a');

$n = 4; //取值自定
$i = -1;
foreach($a as $k=>$v) {
  if($k % $n == 0) $i++;
  echo "<li class=\"{$d[$i]}\">$v</li>\n";
}

<li class="h">黑龙江</li>
<li class="h">吉林</li>
<li class="h">辽宁</li>
<li class="h">北京</li>
<li class="n">上海</li>
<li class="n">广东</li>

作者: xuzuning   发布时间: 2011-06-10