此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【twinh】截止到2008-06-26 18:40:56的历史汇总数据(不包括此帖):
发帖数:0                  发帖分:0                  
结贴数:0                  结贴分:0                  
未结数:0                  未结分:0                  
结贴率:-------------------结分率:-------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html

解决方案 »

  1.   

    补充:输出结果写少了第一句:  <div id="t">
    当然,这一下不大.
      

  2.   

    帮你改了一下,写了一个递归函数:)<?php
    $forum = array(
    '1' => array(
    'fid' => '1',
    'fup' => '0',
    'type' => 'category',
    'name' => '1区',
    'f_type' => '',
    ),
    '2' => array(
    'fid' => '2',
    'fup' => '1',
    'type' => 'forum',
    'name' => '2区',
    'f_type' => 'forum',
    ),
    '3' => array(
    'fid' => '3',
    'fup' => '1',
    'type' => 'forum',
    'name' => '3区',
    'f_type' => 'forum',
    ),
    '4' => array(
    'fid' => '4',
    'fup' => '1',
    'type' => 'category',
    'name' => '4区',
    'f_type' => 'forum',
    ),
    '5' => array(
    'fid' => '5',
    'fup' => '1',
    'type' => 'forum',
    'name' => '5区',
    'f_type' => 'forum',
    ),
    );
    function get_subforum($forum, $fup = 0) {
    if($fup == 0) {
    $chtml .="<div id=\"t\">\r\n";
    }
    foreach($forum as $key => $v) {
    if(isset($v['cms']) || $v['f_type'] == 'hidden') continue;
    $vfup = $v['fup'];
    if($vfup == $fup) {
    if($v['type']=='category'){
    $chtml .= "\t<div class=\"tt\" id=\"{$v['fid']}\">";
    $chtml .= get_subforum($forum, $v['fid']);
    $chtml .= "</div>";
    } elseif($v['type'] == 'forum') {
    $chtml .= "\t<a href=\"1.php?fid={$v['fid']}\">{$v['name']}</a><br/>";
    }
    }
    }
    if($fup == 0) {
    $chtml .= "\r\n</div>";
    }
    return $chtml;
    }
    echo get_subforum($forum);
    ?>
      

  3.   

    不如看下简短版吧elseif结尾怎判断为空?  
    http://topic.csdn.net/u/20080627/09/6f6ab8cf-391e-4472-b6d3-4aa81673d305.html
      

  4.   

    帮你改了一下,写了一个递归函数:)<?php
    $forum = array(
    '1' => array(
    'fid' => '1',
    'fup' => '0',
    'type' => 'category',
    'name' => '1区',
    'f_type' => '',
    ),
    '2' => array(
    'fid' => '2',
    'fup' => '1',
    'type' => 'forum',
    'name' => '2区',
    'f_type' => 'forum',
    ),
    '3' => array(
    'fid' => '3',
    'fup' => '1',
    'type' => 'forum',
    'name' => '3区',
    'f_type' => 'forum',
    ),
    '4' => array(
    'fid' => '4',
    'fup' => '1',
    'type' => 'category',
    'name' => '4区',
    'f_type' => 'forum',
    ),
    '5' => array(
    'fid' => '5',
    'fup' => '1',
    'type' => 'forum',
    'name' => '5区',
    'f_type' => 'forum',
    ),
    );
    function get_subforum($forum, $fup = 0) {
    if($fup == 0) {
    $chtml .="<div id=\"t\">\r\n";
    }
    foreach($forum as $key => $v) {
    if(isset($v['cms']) || $v['f_type'] == 'hidden') continue;
    $vfup = $v['fup'];
    if($vfup == $fup) {
    if($v['type']=='category'){
    $chtml .= "\t<div class=\"tt\" id=\"{$v['fid']}\">";
    $chtml .= get_subforum($forum, $v['fid']);
    $chtml .= "</div>";
    } elseif($v['type'] == 'forum') {
    $chtml .= "\t<a href=\"1.php?fid={$v['fid']}\">{$v['name']}</a><br/>";
    }
    }
    }
    if($fup == 0) {
    $chtml .= "\r\n</div>";
    }
    return $chtml;
    }
    echo get_subforum($forum);
    ?>
      

  5.   

    你改后的输出结果是:
    <div id="t">
    <div class="tt" id="1">
    <a href="1.php?fid=2">2区</a><br/>
            <a href="1.php?fid=3">3区</a><br/></div>
            
            <div class="tt" id="4"> </div>
            <a href="1.php?fid=5">5区</a><br/></div>
    </div>
    少了那个红色的</div>,多了绿色的.
      

  6.   

    没有多,看清楚, id = 4 的也是 id = 1 的子版块,只是它下面没有子论坛而已。
      

  7.   

    恩,输出结果很完美.
    但数组换成
    $forum=array(
    '1' => array(
    'fid' => '1',
    'fup' => '0',
    'ifsub' => '0',
    'type' => 'category',
    'name' => '1大区',
    'style' => '',
    'f_type' => '',
    'cms' => '0',
    'ifhide' => '1',
    ),
    '2' => array(
    'fid' => '2',
    'fup' => '1',
    'ifsub' => '0',
    'type' => 'forum',
    'name' => '1-2区',
    'style' => '0',
    'f_type' => 'forum',
    'cms' => '0',
    'ifhide' => '1',
    ),
    '5' => array(
    'fid' => '5',
    'fup' => '1',
    'ifsub' => '0',
    'type' => 'forum',
    'name' => '1-5区',
    'style' => '',
    'f_type' => 'forum',
    'cms' => '0',
    'ifhide' => '1',
    ),
    '3' => array(
    'fid' => '3',
    'fup' => '0',
    'ifsub' => '0',
    'type' => 'category',
    'name' => '3大区',
    'style' => '',
    'f_type' => '',
    'cms' => '0',
    'ifhide' => '1',
    ),
    '4' => array(
    'fid' => '4',
    'fup' => '3',
    'ifsub' => '0',
    'type' => 'forum',
    'name' => '3-4区',
    'style' => '',
    'f_type' => 'forum',
    'cms' => '0',
    'ifhide' => '1',
    ),
    '9' => array(
    'fid' => '9',
    'fup' => '3',
    'ifsub' => '0',
    'type' => 'forum',
    'name' => '3-9区',
    'style' => '0',
    'f_type' => 'forum',
    'cms' => '0',
    'ifhide' => '1',
    ),
    );
    读出的结果怎是[code=HTML]
    ]<div id="t"></div>
    [/code
      

  8.   

    $category = 0;
    $chtml .=' <div id="t">'; 
    foreach ($forum as $key=>$v) { 
      if($v['cms'] || $v['f_type']=='hidden')continue; 
      $fup = $v['fup']; 
      if($v['type']=='category'){ 
        if($category) {
          $chtml .= ' </div>';
          $category --;
        }
        $chtml .= ' <div class="tt" id="'.$v['fid'].'">'; 
        $category++;
      } elseif($v['type']=='forum'){ 
        $chtml .= ' <A href="1.php?fid='.$v['fid'].'">'.$v['name'].' </a>'; 
      } 
    }
    while($category) {
      $chtml .= ' </div>';
      $category --;
    }
    $chtml .= ' </div>';
    echo $chtml;
      

  9.   

            if(isset($v['cms']) || $v['f_type'] == 'hidden')    continue;这句换成
            if(!empty($v['cms']) || $v['f_type'] == 'hidden')    continue;
      

  10.   


            if(isset($v['cms']) ¦ ¦ $v['f_type'] == 'hidden')    continue; //这句换成 
            if(!empty($v['cms']) ¦ ¦ $v['f_type'] == 'hidden')    continue; 
      

  11.   


            if(isset($v['cms']) || $v['f_type'] == 'hidden')    continue; //这句换成,注意 || 不是 ¦ ¦
            if(!empty($v['cms']) || $v['f_type'] == 'hidden')    continue; 
      

  12.   

    恩恩13楼的基本上解决了
    xkxmud 也功不可没..
    谢谢