关于php中smarty模版的section二维数组一些参数的解释

关于php中smarty模版的section二维数组一些参数的解释
第一个PHP文件:index.php
include("smarty_con.php");
$new[]=array(array("biao_ti"=>"新闻第一条","date"=>"2011-8-11"),
array("biao_ti"=>"新闻第二条","date"=>"2011-8-11"),
array("biao_ti"=>"新闻第三条","date"=>"2011-8-11"),
array("biao_ti"=>"新闻第四条","date"=>"2011-8-11"));
$smarty->assign("body",$new);
$smarty->display("index.htm");
?>

第二个模板HTM文件:index.htm


Smarty模板实例


{section name=list loop=$body}
//这里的name和loop分别代表什么意思?name指的是循环名字,loop指内容,是不是说name就是指一个数组的名字?loop就是数组的内容?搞迷糊了我(┬_┬)
{$body[list].biao_ti} | {$body[list].date}
//还有这一行,$body[list]是指二维数组的第一个key=>value键值对??之后的biao_ti指键值对下的key???可是为什么用$body[list]表示呢,我表示很不解额,就这两个问题!!!!请高手回答我的问题
{/section}


section里面的属性name是该循环的名称,loop为你要循环的数组,还有start 表示循环的初始位置,step表示步长,这里的name可以任意给定一个值相当于定义稿宏一个变量一样,而loop是你蠢敬桥要循环的那个数组,这儿是$body。
分析下这个数组的第一个元素:
$new[]=array(
array(
"biao_ti"=>"新闻第一条",
"date"=>"2011-8-11"
)
不难看出来这是一个三维数组,因为$new[]就可以写成$new=array(),那么用$body[list]表示的问题就可以解带猛决了,也就是说$new[]的KEY值为0第二维的array也为[0]
$new=array(
[0]=>array(
[0]=>array(
("biao_ti"=>"新闻第二条","date"=>"2011-8-11"
)
[1]=>array(
("biao_ti"=>"新闻第二条","date"=>"2011-8-11"
)
[2]=>array(
("biao_ti"=>"新闻第二条","date"=>"2011-8-11"
)
[3]=>array(
("biao_ti"=>"新闻第二条","date"=>"2011-8-11"
)
)
)
他循环出来的键值就是按索引顺序循环出来了啊,有点绕了~~~不过理一下思路就出来了
{section name=list loop=$body}
这在闭羡smarty里面就相当于是孝岁php中的一个巧态睁循环
3.smarty中这个数组能否使用foreach列出? 问题就贺誉孙这些 各位虚闷php侠客就拜托了另外如果可以用foreach的时候,还是用foreach比较好,section的效禅链率比foreach低
← 上一篇: 下一篇: →