那么如何才能让数组的下标从1或0开始呢?
下面我以volist循环为例,说一下:
//key(可选):循环的key变量,默认值为i
<volist name="list" id="vo">
{$vo.id}
{$vo.name}
</volist>手册说明上面有这句话,key为可选值,也就是说如果volist循环里面不写key=“xxx”这句代码的话,直接在循环里写{$key}是从0开始的。如果加了这句代码,循环里面写{$xxx},那么下标就是从1开始。
分析了下缓存里面解析后的源代码:
下面是volist循环不加key=“xxx”的解析结果:
<?php if(is_array($list)): $i = 0; $__LIST__ = $list;if( count($__LIST__)==0 ) : echo "" ;else: foreach($__LIST__ as $key=>$vo): $mod = ($i % 2 );++$i;?><tr>
<td><?php echo ($key); ?></td>
</tr><?php endforeach; endif; else: echo "" ;endif; ?>下面是加了key=“xxx”的解析结果:<?php if(is_array($list)): $k = 0; $__LIST__ = $list;if( count($__LIST__)==0 ) : echo "" ;else: foreach($__LIST__ as $key=>$vo): $mod = ($k % 2 );++$k;?><tr>
<td><?php echo ($k); ?></td>
</tr><?php endforeach; endif; else: echo "" ;endif; ?>-------------------可以看到循环里面的输出key变量都不一样,再看看循环体,就明白了。
所以总结出来的就是在循环体中加了key=“xxx”的循环下标是从1开始的,不加就是从0开始(或者说是输出默认的下标)的。
最佳答案