本文实例讲述了Thinkphp中数据按分类嵌套循环实现方法。分享给大家供大家参考。具体实现方法如下:
做thinkphp时要用到循环里面嵌套循环的,并第二个循环是和外面的有关联的。
thinkphp官网给出的文档为:
复制代码 代码如下:
<volist name="list" id="vo">
<volist name="vo['sub']" id="sub">
{$sub.name}
</volist>
</volist>
<volist name="vo['sub']" id="sub">
{$sub.name}
</volist>
</volist>
我这里要用的表为:分类表(表1),数据表(表2)
要实现的效果为:
<表1_1>
<表2_1/>
<表2_2>
</表1_1>
<表1_2>
<表2_3/>
<表2_4>
</表1_2>
其实原理也是先查出分类表(表1),再把表1和表2相关联查询,最后以二维数组的方式输出
后台代码如下:
复制代码 代码如下:
$m=M('表1');
$m1=M('表2');
$parent=$m->select();
foreach($parent as $n=> $val){
$parent[$n]['voo']=$m1->where('表2里和表1相关联的字段='.$val['表1id'].'')->select();
}
$this->assign('list',$parent);
$this->display();
$m1=M('表2');
$parent=$m->select();
foreach($parent as $n=> $val){
$parent[$n]['voo']=$m1->where('表2里和表1相关联的字段='.$val['表1id'].'')->select();
}
$this->assign('list',$parent);
$this->display();
前台输出显示:
复制代码 代码如下:
<volist name="list" id="vo">
<li><b>{$vo.id}</b></li>
<volist name="vo['voo']" id="sub">
<li>{$sub.title}</li>
</volist>
</volist>
<li><b>{$vo.id}</b></li>
<volist name="vo['voo']" id="sub">
<li>{$sub.title}</li>
</volist>
</volist>
效果如下图所示:
希望本文所述对大家的ThinkPHP程序设计有所帮助。