我的,修改了几次,现在在用的!
function TreeView( $trees, $pid = 0, $space = '' )
{
    static $TreeList = array();    if( is_array( $trees ) )
    {
        foreach( $trees as $tree )
        {
            if( is_array( $tree ) && ( $tree['pid'] == $pid ) )
            {
                $tree['space'] = $space;
                $TreeList[]    = $tree;                TreeView( $trees, $tree['id'], $tree['space'] . '' );
            }
        }
    }    return $TreeList;
}$db = new MySQL;
$result = $db->query( 'SELECT * FROM tree' );
while( $tree = $db->fetch_array( $result ) )
{
    $trees[] = $tree;
}
$trees = TreeView( $trees );
$db->free_result( $result );
$db->close();<!--{loop($trees $tree)}-->
{=$tree['space']}{=$tree['name']}
<!--{/loop}-->
Smarty没用过,我用的自己的模板,也不知道模板这样写对不!

解决方案 »

  1.   

    最简单{php}... ...{/php}SMARTY提供自定义函数功能 LZ可以把你的函数改成SMARTY扩展函数任何递归循环算法都可以改成非递归循环算法 SMARTY提供多种循环函数也可以使用JS来辅助实现 PHP只需要把需要的数据从数据库中读出来 然后把数据交给JS 并由JS在浏览里中使用用户的CPU完成关系表现的实现LZ也可以什么都不改 把字符串传给SMARTY