普通的二维数组在smarty的模版中是比较容易实现的,但是当数组是多维数组,而且数组的下标又不是数字的时候,smarty网上介绍的比较少,结合我自己在是使用中的情况,写一下自己的体会
模版section访问数字下标用 [ ],访问字符下标用 .
至于初始和不重要的东西都省略了
test.php程序页面
<?php
$list = array(
'name' => array(
array("id"=>1, "title"=>2, "url"=>3),
array("id"=>4, "title"=>5, "url"=>6),
array("id"=>7, "title"=>8, "url"=>9),
),
'value' => array(
array("id"=>"A", "title"=>"B", "url"=>"C"),
array("id"=>"D", "title"=>"E", "url"=>"F"),
array("id"=>"G", "title"=>"H", "url"=>"I"),
)
);
$smarty->assign('list',$list);
$smarty->display('test.html');
?>
模版页面test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta name="Description" content="" />
<meta content="" name="Keywords" />
<link rel="stylesheet" rev="stylesheet" href="" type="text/css" media="all" />
</head>
<body>
{section name=outer loop=$list}
{if $smarty.section.outer.index==0}
{section name=outer2 loop=$list.name}
{$list.name[outer2].url}
{/section}
{/section}
</body>
</html>
三维数组下标为数字的比较好处理一点
<?php
//smarty处理三维数组
$list=array(
array(
array("id"=>1, "title"=>2, "url"=>3),
array("id"=>4, "title"=>5, "url"=>6),
array("id"=>7, "title"=>8, "url"=>9),
),
array(
array("id"=>"A", "title"=>"B", "url"=>"C"),
array("id"=>"D", "title"=>"E", "url"=>"F"),
array("id"=>"G", "title"=>"H", "url"=>"I"),
));
$smarty->assign("list",$list);
$smarty->display("test.html");
?>
模版页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta name="Description" content="" />
<meta content="" name="Keywords" />
<link rel="stylesheet" rev="stylesheet" href="" type="text/css" media="all" />
</head>
<body>
{section name=cate loop=$list}
{section name=scate loop=$list[cate]}
id ------> {$list[cate][scate].id}
title --------> {$list[cate][scate].title}
url ----------> {$list[cate][scate].url}
<br />
{/section}
<br />
{/section}
</body>
</html>