求助!PHP中怎样用遍历在多维数组中同时输出多个指定的值?

我需要输出8个列表内容,然后再在指定序号的列表上同时显示背景图片,没有指定的就不显示。列表数组$lists=array($list1,$list2,$list3........$list8); 指定序号的数组$sn=array(3,5,8);循环8次$num=0;;具体代码如下:
foreach($lists as $key=>$list){
$num=$num+1;

if($num>8) break;{
echo '<li class="list'.$num.'" style="background:none"></li>';<!--当循环到第3,5,8个列表时显示背景background:url()>

}

}
主要是后面显示背景这一步怎么也写不出来,用if($num==遍历后的$sn),只能显示其中指定序号的一个背景,用if($sn[$key]),输出的是第1,2,3个列表的背景。
我要的效果是在8个列表中,第3,第5,第8个列表显示背景,而胜于序号的列表则不显示背景,请大侠帮助……
但是如果这个序号不是固定的,需要根据情况来变换呢?比如有时候我需要第1,第6,有时候需要2,3,4,5,6……这个选择序号的数组是可以后台选择的。
另外要输出的背景是固定的同一个。
$list = array($a,$b,$c.....);
$sn=explode(',',$bk);<!--$bk是一个后台配置的根据用户需求变化的序号组合>
$num=0;
foreach($list as $k=>$v){
$num=$num+1;
foreach($sn as $n){
if($num>8) break;{
if($num == $n){

echo '<li class="titem0'.$num.'">';
echo '<div class="tabs-tip" style="background:url(assets/images/tip1.gif);background-repeat:no-repeat;display:block"></div></li>';
}else{
echo '<li class="titem0'.$num.'">';
echo '<div class="tabs-tip" style="background:url(assets/images/tip1.gif);background-repeat:no-repeat;display:none"></div></li>';
}

}

}
我这样写之后结果就是只能输出$sn中序号组的其中一个背景,比如3,5,8只能输出第三个,后面的全都执行了display:none。我需要的是后台配置多少个序号,就同时输出多少个背景T_T

怎么搞的那么复杂啊。很简单啊。
$sn=array(3,5,8);//规定显示北景的项,哪里来的是你的问题
foreach($lists as $key=>$list){
$num=$num+1;
if($num>8) break;
if(in_array($num,$sn)){
//显示背景的代码
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-15
$i = 1;
foreach($list as $k=>$v){
$i == 3 && echo '<li class="list'.$i.'" style="background:xxx"></li>;
$i == 5 && echo '<li class="list'.$i.'" style="background:xxx"></li>;

$i == 8 && echo '<li class="list'.$i.'" style="background:xxx"></li>;

$i++;

}

碰到3 5 8 就给出带背景的li就成了呗,没有多复杂吧?追问

谢谢!!!但是如果这个序号不是固定的,需要根据情况来变换呢?比如有时候我需要第1,第6,有时候需要2,3,4,5,6……也就是说$sn这个数组是可以再后台自己配置的。

追答

也可以的,两次循环

$arr = array(2,3,4,6,8);
$i = 1;
foreach($list as $k=>$v){
foreach($arr as $arr_v){
$i == $arr_v && echo ';

}
$i++;

}

追问

$i == $arr_v && echo ';

这样写输出不了呀。&& echo '';是什么意思?但是如果用了if的话只能输出一个背景T_T

追答

&& 就是if的简写。。。

得,你把你要的代码发上来吧,我帮你写一下吧。。

第2个回答  2012-11-16
多循环几次,注意每次的key和值!
第3个回答  2012-11-15
3,5,8只是举例吧
相似回答