PHP中多重循环以及thinkphp多重循环需要注意的地方

本文讲述了在PHP中进行多重循环时遇到的问题,强调了在不同循环层级中参数名称不应重复,否则可能导致循环错误。同时,对于ThinkPHP框架,讨论了在模板渲染中使用volist标签处理多重数组时的注意事项,包括避免直接嵌套volist以及可能需要指定key值的情况。

一.关于PHP中多重循环
如下代码所示,我用了三重的循环

for ($i=0; $i < $len ; $i++) { 
    //循环内容
    for($p = 0; $p < $len; $p++){
        //循环内容  
        for($j = 0; $j < $len; $j++){
            //循环内容
        }
    }
}           

然后今天多了一个需求,需要在最后一重循环里面加个小小的循环,因为相隔写上一段代码的日子有点长了,所以我没加思考,就直接加了一个循环如下:

for ($i=0; $i < $len ; $i++) { 
    //循环内容
    for($p = 0; $p < $len; $p++){
        //循环内容  
        for($j = 0; $j < $len; $j++){
            //循环内容
            for($i=0; $i < $len ; $i++){
                //循环内容
            }
        }
    }
}

运行完之后,发现数据只循环了一次就无法继续进行下去,我检查了程序的语句,没有语法错误,没道理会这样啊,这时我发现第四重和第一重都用了i,i改为了其他参数名称,发现果然循环正常了,所以在多重循环的时候要注意,每一重循环的参数不能重复,否则会导致循环出错。



二.关于thinkphp中的多重循环
在使用TP的过程中,最常见的一种处理就是把后端的数据渲染到前端模板,所以经常需要处理多重数组,而TP的volist标签是最常用的。但是发现如果直接在volist中添加volist标签,程序会出错,所以就想到一个方法,第一重循环可以使用volist,第二重以及接下来的循环可以使用foreach标签,这样一来就不会出错了,不过刚才查了一下,如果volist要嵌套volist的话,需要指定volist标签中的key值,以保循环结束,不过还没实践,先mark下来,等下再继续看一下真的出错的原因是什么。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值