序号  级别   编号
1      1       1
2      2       1.1
3      2       1.2
4      1       2
5      2       2.1
6      2       2.2
7      3       2.21
8      3       2.22
9      1       3
10     1       4 
11     2       4.1
12     2       4.2问题如下:序号和级别已经确定,级别最多是3级。。希望用序号和级别求出编号。这个程序应该怎么写?谢谢!

解决方案 »

  1.   

    序号只用于排序,实际起作用的是“级别”$ar = array(1,2,2,1,2,2,3,3,1,1,2,2);$level = array();
    foreach($ar as $v) {
      if($level[$v]) {
        $level[$v]++;
        foreach($level as $i=>$t) {
          if($i > $v) unset($level[$i]);
        }
      }else $level[$v] = 1;
      echo join('.', $level).'<br>';
    }
      

  2.   

    Function GetAllColumID(id)   '取得id值目录下的所有子目录
     Dim arrID
     arrID = id
     Set Rst = conn.Execute("Select Student_cataid,Student_fatherid,Student_name From Work_Student_cata Where Student_fatherid = "&id&"")
     If Rst.eof and Rst.bof Then
      Set Rst = Nothing
      GetAllColumID = arrID
      Exit Function
     Else
      While Not Rst.eof
       arrID = arrID& "," &GetAllColumID(Rst("Student_cataid"))
      Rst.MoveNext
      Wend  
     End If
     Rst.close:Set Rst = Nothing  GetAllColumID = arrIDEnd Function
      

  3.   

    <?
    $sql="select id,content(内容),order1(序号),level(级别) from table order by order1 asc";
    $res=mysql_query($sql);
    while($row=mysql_fetch_array($res))
    {
     $ar[] = $row[Level];
    }
    print_r($ar)."<br>";
    print_r($Content);
    $level = array();
    foreach($ar as $v) {
      if($level[$v]) {
        $level[$v]++;
        foreach($level as $i=>$t) {
          if($i > $v) unset($level[$i]);
        }
      }else $level[$v] = 1;
      echo "<tr><td>".join('.', $level)."</td></tr>";
    }
    ?>
    我想以下面这种形式输出!编号      文章        时间
    1          文章1      2007-4-1
    1.1        文章2      2007-4-1
    1.2        文章2      2007-4-1
    试验了两次都没成功,只好来求助了。我应该怎么写?