PHP 统计算法 求解

模拟数据表
catid(目录ID)       upid(上级目录ID)                                 num(值全部为1)
1                                   0      (0无上层目录)                                1
2                                  0                                                                    1
3                                  0
4                                  1       (上层目录ID号为1)
5                                  1
6                                  2       (上层目录ID号为2)
7                                  4       (上层目录ID号为4)
8                                  7       (上层目录ID号为7)
9                                  5        (上层目录ID号为5)


意思就是计算出  每个目录下所有子目录的num总数  和每个子目录下的num总数   

需要得到的结果  
catid   1        得到   6
catid   2       得到   2
            3                  1
            4                  2
            5                  2
            6                  1
            7                  2
            8                  1
            9                  1

作者: cnkhaos   发布时间: 2011-06-02

  1. function catid($id, $table) {
  2.     $num = 1;
  3.     foreach($table as $k=>$v) {
  4.         if($v['upid'] == $id)
  5.             $num += catid($v['catid']);
  6.     }
  7.     return $num;
  8. }
复制代码

作者: youkind   发布时间: 2011-06-03