你的父类与子类在同一级吗?
你的$catelist的结构是什么样子的,贴出来。

解决方案 »

  1.   

    $query=$db->query("select * from cate where weixin_id='".$weixin_id."' and display = 1 and parentid = 0 order by sortorder ASC");
    $rows=$db->fetch_array($query)
    $catelist[]=$rows;
      

  2.   

    小分类应该是在大分类里面啊,为什么循环小分类的时候还是$catlistforeach($catelist as $k=>$v)//大分类
    {
         foreach($v['小分类'] as $k=>$v){};
    }
      

  3.   


    因为是同一级的,只是用字段来标示出子分类
    所以下面才会出现判断分类的有等于父分类if ($vv['parentid']==$v['cate_id']){ //判断小分类的父分类
      

  4.   

    父子之间的级别关系对了吗?如果只是样式不对,那就是html的问题了
      

  5.   


    因为是同一级的,只是用字段来标示出子分类
    所以下面才会出现判断分类的有等于父分类if ($vv['parentid']==$v['cate_id']){ //判断小分类的父分类
    逻辑上确实没有什么错,提示什么?
      

  6.   

    因为大分类下的子分类,每4个就是一个<li>,
    所以我写的现在不是这样的,是我不知道怎么写,这也是我要问的
      

  7.   


    foreach($data as $key=>$value){ if($value['pid'] == 0){//顶级大分类
    $i = 1;
    echo "<div class='catemenu'>";
    echo "<div class='cname'>";
    echo $value['name'] . "</div>";
    echo "<ul><li>";
    foreach($data as $k=>$v){
    if($value['id'] == $v['pid']){
    if($i % 5 == 0){
    echo "<div class='clr'></div></li><li>";
    }
    echo "<a>" . $v['name'] . "</a>";
    $i++;
    }
    }
    if($i % 5 != 0){
    echo "<div class='clr'></div></li>";
    } echo "</ul></div>";
    }}楼主,可以参考一下这段代码,跟你的是相似的,替换echo代码部分就ok了!
      

  8.   

    本帖最后由 xuzuning 于 2013-11-27 20:23:23 编辑
      

  9.   

    大神,简化啥啊不简化能看懂就不错了,问下 $new_catlist[$vv['parentid']][] = $vv;这里为什么有两个[][],一个不就够用了吗?新手求教,请多多指导
      

  10.   

    if ($vv['parentid']==$v['cate_id']){ //判断小分类的父分类
    所以凡是 $vv['parentid'] 与大类的 $v['cate_id'] 相等的都属于同一大类
    于是可以 $vv['parentid'] 的值为键来聚类小类
    $k = $vv['parentid'];
    $new_catlist[$k][] = $vv;
    简写成
    $new_catlist[$vv['parentid']][] = $vv;
      

  11.   

    大神,简化啥啊不简化能看懂就不错了,问下 $new_catlist[$vv['parentid']][] = $vv;这里为什么有两个[][],一个不就够用了吗?新手求教,请多多指导
    建议看下PHP数组处理。