当前位置: 代码迷 >> PHP >> 两个foreach 如何循环
  详细解决方案

两个foreach 如何循环

热度:67   发布时间:2016-04-28 19:25:23.0
两个foreach 怎么循环?
我用的某多用户商城系统,现在想把店铺一级大类下面的二级类循环出来,同时二级大类下面自动读取当前二级大类中的推荐店铺,请问该怎么写。如下图:


代码如下:

<div class="louceng">
 <?php if(!empty($output['class_list']) && is_array($output['class_list'])){
 $i = 0;
 ?>

    
      <?php foreach($output['class_list'] as $k=>$v){
  
  $i++;
  ?>
         <div class="floor_area"> 
      <?php if ($_GET['cate_id'] == $v['sc_parent_id']){
  ?>
      <h2><?php echo $i;?>F  <?php echo $v['sc_name'];?></h2>
             <?php if(!empty($output['store_list']) && is_array($output['store_list'])){?>
             <ul>
             <?php foreach($output['store_list'] as $skey => $store){?>
             
             <li><a href="<?php echo ncUrl(array('act'=>'show_store','id'=>$store['store_id']),'store',$store['store_domain']);?>" title="" target="_blank"><span class="thumb size72">
             <img src="<?php echo SiteUrl.'/'.(ATTACH_PATH.DS.'ad'.DS.$store['shopad']);?>" onload="javascript:DrawImage(this,240,240);" /></span></a>
             </li>
             
             <?php }?>
             </ul>
             <div class="clear"></div>
             <?php }?>
      <?php }elseif (!isset($v['child']) && $output['class_list'][$_GET['cate_id']]['sc_parent_id'] == $v['sc_parent_id']){?>
      <h2><?php echo $v['sc_name'];?></h2>
      <?php }?>
        </div>
      <?php }?>
    
  <?php }?>
</div>


另外<?php echo $i;?>为什么不是从1开始?
------解决方案--------------------
你的代码不能实现吗?贴出 $output 的内容

$i++; 在 foreach($output['class_list'] as $k=>$v){ 循环中无条件执行
echo $i; 在 if ($_GET['cate_id'] == $v['sc_parent_id']){ 分支中有条件执行
因为条件可能不成立,所以 echo $i;就可能不连续
           
既然 $i 表示一个顺号,那么就应该删除 9 行的 $i++;
而 14 行的 echo $i; 改为 echo ++$i;
  相关解决方案