请大家帮帮忙,这个循环应该怎么控制?$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>

解决方案 »

  1.   

    $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;
    }
      

  2.   

    $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>
      

  3.   

    $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
    */
      

  4.   

    这个也可以:         $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>';
      

  5.   


    //既然大家利用数组的方法,我也来个。这个不用判断的了。$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
    */
      

  6.   

    再来个通用的<?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>
      

  7.   


    偶是菜鸟,在问一个小问题   $k&1  这个表示什么意思?
      

  8.   


    二进制位运算,&1通常用来判断奇偶,奇数得到1,偶数得到0,因为php可以用1/0表示true/flase,所以直接用于判断
      

  9.   

    谢谢snmr_com的耐心回答,终于明白啦