【发布时间】:2013-02-08 12:57:08
【问题描述】:
我的问题 我有无穷无尽的菜单 代码
$result=db::query_tpv("SELECT * FROM tpv_link");
while($row = db::fetch_array($result,'assoc'))
{
$menu[$row['parent_id']][$row['id_link']] = $row['name_link'];
}
function make_menu($parent_id)
{global $menu;if (!isset($menu[$parent_id])) {return;}
$nodes = $menu[$parent_id];
echo '<ul>';
foreach($nodes as $menu_id => $menu_name)
{
echo '<li>'.$menu_name ;
make_menu($menu_id) ;
echo '</li>';
}
echo '</ul>';
}
这个 {0|make_menu} 也可以在 samrty 中工作 ,但我想取消这个函数并在 smarty 中更改为这个(定义 $menu)
{function name=menu level=0}
<ul>
{foreach $data as $items}
<li>
<a href="{$items.url}">
{$items.title}
</a>
{if is_array($items.submenu)}
{menu data=$items.submenu level=$level+1}
{/if}
</li>
{/foreach}
</ul>
{/function}
{menu data=$menuItems}
在这个how to foreach an array variable created with recursive function in Smarty 但它不起作用.....
【问题讨论】:
-
“不工作”是什么意思?
-
我的意思不是什么都没有(任何结果)
-
请检查我的代码和数组
-
我不知道 smarty,但是函数从哪里得到
$data?我假设它没有在全局范围内定义,并且您正在尝试遍历未设置的内容。您应该使用error_reporting(-1)来查看您的代码产生的任何通知或警告。 -
谢谢我现在去看看
标签: function recursion smarty3