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
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
- function catid($id, $table) {
- $num = 1;
- foreach($table as $k=>$v) {
- if($v['upid'] == $id)
- $num += catid($v['catid']);
- }
- return $num;
- }
作者: youkind 发布时间: 2011-06-03