Heim  >  Artikel  >  Backend-Entwicklung  >  获取数据后如何排成这种形式!

获取数据后如何排成这种形式!

WBOY
WBOYOriginal
2016-06-23 14:38:15861Durchsuche




但是这个肯定错了,但是不知道怎么去写啊,逻辑好乱,有大神帮忙吗?分不多,就一个意思!
我写错的:

<?php foreach($catelist as $k=>$v){?> //循环大分类<div class="catemenu"><div class="cname"><?php echo $v['cate_name'];?></div><ul><?phpforeach($catlist as $kk=>$vv){ //循环小分类if ($vv['parentid']==$v['cate_id']){ //判断小分类的父分类?><li><a href="<?php echo $vv['url'];?>"><?php echo $vv['cate_name'];?></a><div class="clr"></div></li><?php } } ?></ul></div><?php }?>



下面是图片的HTML:
<div class="catemenu"><a href=""><div class="cname"><img  src="1.png" / alt="获取数据后如何排成这种形式!" >酒店宾馆</div></a><ul>  <li><a href="">新安东阁</a><a href="">七经街店</a><a href="">锦山大街店</a><a href="">江城大街店</a><div class="clr"></div></li><li><a href="1">皇冠假日</a><a href="">汉庭步行街</a><a href="">月光百合</a><a href="">万家酒店</a><div class="clr"></div></li>         <li><a href="">凯日达宾馆</a><a href="">艺海宾馆</a><a href="">荣汇酒店</a><a href="">龙苑温泉</a><div class="clr"></div></li>         <li><a href="">汉庭站前店</a><a href="">7天连锁</a><a href="">子木屋日租</a><a href="">假日阳光</a><div class="clr"></div></li>         <li><a href="">中联酒店</a><a href="">高尔夫会所</a><a href="">尚客优快捷</a><a href="">莱弗仕酒店</a><div class="clr"></div></li>         <li><a href="">长城宾馆</a><a href="">丽兹卡尔森</a><a href="">虎跃酒店</a><a href="">阿里郎宾馆</a><div class="clr"></div></li><li><a href="">皇家凯旋</a><a href="">董姐旅馆</a></ul></div><div class="catemenu"><a href=""><div class="cname"><img  src="2.png" / alt="获取数据后如何排成这种形式!" >便民工具</div></a><ul><li><a href="">火车余票</a><a href="">航班查询</a><a href="">快递查询</a><a href="">艺龙酒店预定</a><div class="clr"></div></li><li><a href="">彩票开奖</a><a href="">下厨房</a><a href="">爱星座</a><a href="">医药在线资讯</a><div class="clr"></div></li><li><a href="">塔罗占卜</a></ul></div>


回复讨论(解决方案)

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

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

$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;

小分类应该是在大分类里面啊,为什么循环小分类的时候还是$catlist

foreach($catelist as $k=>$v)//大分类{     foreach($v['小分类'] as $k=>$v){};}

小分类应该是在大分类里面啊,为什么循环小分类的时候还是$catlist

foreach($catelist as $k=>$v)//大分类{     foreach($v['小分类'] as $k=>$v){};}


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

那你这个逻辑上应该没有错啊,报什么错了吗?结果是什么样的?

那你这个逻辑上应该没有错啊,报什么错了吗?结果是什么样的?

结果是没能列出像图片那种样式

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


小分类应该是在大分类里面啊,为什么循环小分类的时候还是$catlist

foreach($catelist as $k=>$v)//大分类{     foreach($v['小分类'] as $k=>$v){};}


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


逻辑上确实没有什么错,提示什么?

因为大分类下的子分类,每4个就是一个

  • ,
    所以我写的现在不是这样的,是我不知道怎么写,这也是我要问的

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

    foreach($catelist as $k=>$v){?> //循环大分类
    foreach($catlist as $kk=>$vv){ //循环小分类
    }}
    你的数据是如何组织的?
    难道不是将小分类聚集在相应的大分类下吗?
    似你这样组织数据,循环小分类不是要做很多无效劳动吗?

    第一步
    foreach($catlist as $kk=>$vv){ //循环小分类  $vv['cate_name'] = "<a href='$vv[url]'>$vv[cate_name</a>";  $new_catlist[$vv['parentid']][] = $vv; //按大分类聚类}

    第二步
    foreach($catelist as $k=>$v){ //循环大分类  //输出大分类数据  $t = $new_catlis[$v['cate_id']]; //取回自己的小分类数据  $t = array_chunk($t, 4); //按4个一组切开  echo '<ul>';  foreach($t as $x) {    echo '<li>' . join('', $x) . '</li>';  }  echo '</ul>';  //输出大分类剩余数据}
    为清晰起见,简化了代码
    意思到了就行

    foreach($catelist as $k=>$v){?> //循环大分类
    foreach($catlist as $kk=>$vv){ //循环小分类
    }}
    你的数据是如何组织的?
    难道不是将小分类聚集在相应的大分类下吗?
    似你这样组织数据,循环小分类不是要做很多无效劳动吗?

    第一步

    foreach($catlist as $kk=>$vv){ //循环小分类  $vv['cate_name'] = "<a href='$vv[url]'>$vv[cate_name</a>";  $new_catlist[$vv['parentid']][] = $vv; //按大分类聚类}

    第二步
    foreach($catelist as $k=>$v){ //循环大分类  //输出大分类数据  $t = $new_catlis[$v['cate_id']]; //取回自己的小分类数据  $t = array_chunk($t, 4); //按4个一组切开  echo '<ul>';  foreach($t as $x) {    echo '<li>' . join('', $x) . '</li>';  }  echo '</ul>';  //输出大分类剩余数据}
    为清晰起见,简化了代码
    意思到了就行
    大神,简化啥啊 不简化能看懂就不错了,问下 $new_catlist[$vv['parentid']][] = $vv;这里为什么有两个[][],一个不就够用了吗?新手求教,请多多指导

    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;


    foreach($catelist as $k=>$v){?> //循环大分类
    foreach($catlist as $kk=>$vv){ //循环小分类
    }}
    你的数据是如何组织的?
    难道不是将小分类聚集在相应的大分类下吗?
    似你这样组织数据,循环小分类不是要做很多无效劳动吗?

    第一步

    foreach($catlist as $kk=>$vv){ //循环小分类  $vv['cate_name'] = "<a href='$vv[url]'>$vv[cate_name</a>";  $new_catlist[$vv['parentid']][] = $vv; //按大分类聚类}

    第二步
    foreach($catelist as $k=>$v){ //循环大分类  //输出大分类数据  $t = $new_catlis[$v['cate_id']]; //取回自己的小分类数据  $t = array_chunk($t, 4); //按4个一组切开  echo '<ul>';  foreach($t as $x) {    echo '<li>' . join('', $x) . '</li>';  }  echo '</ul>';  //输出大分类剩余数据}
    为清晰起见,简化了代码
    意思到了就行
    大神,简化啥啊 不简化能看懂就不错了,问下 $new_catlist[$vv['parentid']][] = $vv;这里为什么有两个[][],一个不就够用了吗?新手求教,请多多指导
    建议看下PHP数组处理。

  • Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn