请大家帮帮忙,这个循环应该怎么控制?$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>
<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>
$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;
}
$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>
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
*/
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>';
//既然大家利用数组的方法,我也来个。这个不用判断的了。$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
*/
$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>
偶是菜鸟,在问一个小问题 $k&1 这个表示什么意思?
二进制位运算,&1通常用来判断奇偶,奇数得到1,偶数得到0,因为php可以用1/0表示true/flase,所以直接用于判断