关于php中smarty模版的section二维数组一些参数的解释
第一个PHP文件:index.php<?phpinclude("smarty_con.php");$new[]=array(array("biao_ti"=>"新闻第一条...
第一个PHP文件:index.php
<?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
<html>
<head>
<title>Smarty模板实例</title>
</head>
<body>
{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}
</body>
</html> 展开
<?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
<html>
<head>
<title>Smarty模板实例</title>
</head>
<body>
{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}
</body>
</html> 展开
展开全部
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"
)
)
)
他循环出来的键值就是按索引顺序循环出来了啊,有点绕了~~~不过理一下思路就出来了
分析下这个数组的第一个元素:
$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中的一个循环
这在smarty里面就相当于是php中的一个循环
参考资料: 采晶智慧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
3.smarty中这个数组能否使用foreach列出? 问题就这些 各位php侠客就拜托了另外如果可以用foreach的时候,还是用foreach比较好,section的效率比foreach低
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询