smarty嵌套循环的问题 你看看smarty教程好吗?这个问题有很清楚的说明。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 巢狀資料的呈現 樣版引擎裡最令人傷腦筋的大概就是巢狀資料的呈現吧,許多著名的樣版引擎都會特意強調這點,不過這對 Smarty 來說卻是小兒科。最常見到的巢狀資料,就算論譠程式中的討論主題區吧。假設要呈現的結果如下: 公告區 站務公告 文學專區 好書介紹 奇文共賞 電腦專區 硬體週邊 軟體討論 程式中我們先以靜態資料為例:test3.php: <?php require "main.php"; $forum = array( array("category_id" => 1, "category_name" => "公告區", "topic" => array( array("topic_id" => 1, "topic_name" => "站務公告") ) ), array("category_id" => 2, "category_name" => "文學專區", "topic" => array( array("topic_id" => 2, "topic_name" => "好書介紹"), array("topic_id" => 3, "topic_name" => "奇文共賞") ) ), array("category_id" => 3, "category_name" => "電腦專區", "topic" => array( array("topic_id" => 4, "topic_name" => "硬體週邊"), array("topic_id" => 5, "topic_name" => "軟體討論") ) ) ); $tpl->assign("forum", $forum); $tpl->display("test3.htm"); ?> 樣版的寫法如下:templates/test3.htm: <html><head><title>巢狀迴圈測試</title></head><body><table width="200" border="0" align="center" cellpadding="3" cellspacing="0"> <{section name=sec1 loop=$forum}> <tr> <td colspan="2"><{$forum[sec1].category_name}></td> </tr> <{section name=sec2 loop=$forum[sec1].topic}> <tr> <td width="25"> </td> <td width="164"><{$forum[sec1].topic[sec2].topic_name}></td> </tr> <{/section}> <{/section}></table></body></html> 執行的結果就像筆者舉的例子一樣。因此呢,在程式中我們只要想辦法把所要重覆值一層一層的塞到陣列中,再利用 <{第一層陣列[迴圈1].第二層陣列[迴圈2].第三層陣列[迴圈3]. ... .陣列索引}> 這樣的方式來顯示每一個巢狀迴圈中的值。这是一篇台湾人写的,关于smarty基础中的一段,希望对你有帮助。如果需要全文,请发消息给我。 为什么不在程序页面一次性保存一个数组记录关联的专辑与歌曲,形如array[专辑名][]=歌曲名,这样smarty输出只须:{foreach item=album from=$array(程序传过来的二维数组) key=albumName}推荐专辑{$albumName}<br>{foreach item=songName from=$album}{$albumName} -- {$songName}<br>{/foreach}{/foreach} 如bingofei(bingo) 所举的例子,我搞定了。数组学的不好,见笑了 PHP中那些知识比较重要呢? substr_replace的问题 php 导出execl问题 有关通达OA设计文档 请教 匹配这段,正则应该怎么写 强烈推荐一个web技术参考网站给大家 快来看呀,关于FTP的问题... 想做一个好点的计数器~~大侠出点高招哦 PHP中,如何对小数取整? win2k+iis+php中是否可用mail()函数? ajax在PHP中的一个经典问题,至今没有完美答案() 如果改变这样的数组存储结构?
樣版引擎裡最令人傷腦筋的大概就是巢狀資料的呈現吧,許多著名的樣版引擎都會特意強調這點,不過這對 Smarty 來說卻是小兒科。最常見到的巢狀資料,就算論譠程式中的討論主題區吧。假設要呈現的結果如下: 公告區
站務公告
文學專區
好書介紹
奇文共賞
電腦專區
硬體週邊
軟體討論 程式中我們先以靜態資料為例:test3.php:
<?php
require "main.php";
$forum = array(
array("category_id" => 1, "category_name" => "公告區",
"topic" => array(
array("topic_id" => 1, "topic_name" => "站務公告")
)
),
array("category_id" => 2, "category_name" => "文學專區",
"topic" => array(
array("topic_id" => 2, "topic_name" => "好書介紹"),
array("topic_id" => 3, "topic_name" => "奇文共賞")
)
),
array("category_id" => 3, "category_name" => "電腦專區",
"topic" => array(
array("topic_id" => 4, "topic_name" => "硬體週邊"),
array("topic_id" => 5, "topic_name" => "軟體討論")
)
)
);
$tpl->assign("forum", $forum);
$tpl->display("test3.htm");
?>
樣版的寫法如下:templates/test3.htm:
<html>
<head>
<title>巢狀迴圈測試</title>
</head>
<body>
<table width="200" border="0" align="center" cellpadding="3" cellspacing="0">
<{section name=sec1 loop=$forum}>
<tr>
<td colspan="2"><{$forum[sec1].category_name}></td>
</tr>
<{section name=sec2 loop=$forum[sec1].topic}>
<tr>
<td width="25"> </td>
<td width="164"><{$forum[sec1].topic[sec2].topic_name}></td>
</tr>
<{/section}>
<{/section}>
</table>
</body>
</html>
執行的結果就像筆者舉的例子一樣。因此呢,在程式中我們只要想辦法把所要重覆值一層一層的塞到陣列中,再利用 <{第一層陣列[迴圈1].第二層陣列[迴圈2].第三層陣列[迴圈3]. ... .陣列索引}> 這樣的方式來顯示每一個巢狀迴圈中的值。这是一篇台湾人写的,关于smarty基础中的一段,希望对你有帮助。如果需要全文,请发消息给我。
{foreach item=album from=$array(程序传过来的二维数组) key=albumName}
推荐专辑{$albumName}<br>
{foreach item=songName from=$album}
{$albumName} -- {$songName}<br>
{/foreach}
{/foreach}