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

我需要输出8个列表内容,然后再在指定序号的列表上同时显示背景图片,没有指定的就不显示。列表数组$lists=array($list1,$list2,$list3........ 我需要输出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
展开
 我来答
gaodu13
2012-11-16 · TA获得超过422个赞
知道小有建树答主
回答量:148
采纳率:100%
帮助的人:126万
展开全部
怎么搞的那么复杂啊。很简单啊。
$sn=array(3,5,8);//规定显示北景的项,哪里来的是你的问题
foreach($lists as $key=>$list){
$num=$num+1;
if($num>8) break;
if(in_array($num,$sn)){
//显示背景的代码
}
}
喝咖啡的胖胖鱼
2012-11-15 · TA获得超过2221个赞
知道小有建树答主
回答量:770
采纳率:0%
帮助的人:348万
展开全部
$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++;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无业游民上学校
2012-11-16 · TA获得超过146个赞
知道答主
回答量:126
采纳率:0%
帮助的人:49.4万
展开全部
多循环几次,注意每次的key和值!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
敦贺恭子
2012-11-15
知道答主
回答量:1
采纳率:0%
帮助的人:1566
展开全部
3,5,8只是举例吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式