PHP两种无限分类方法的一个实例

PHP两种无限分类方法的一个实例
一、递推法

复制代码代码如下所示:

$ =数组(

阵列('id' = > 1,'pid= > 0,'name' = >会),

阵列('id' = > 2,'pid= > 0,'name' = >第二),

阵列('id' = > 3,'pid= > 1,'name' = >21),

阵列('id' = > 4,'pid= > 3,'name' = >31),

阵列('id' = > 5,'pid= > 1,'name' = >22),

阵列('id' = > 6,'pid= > 3,'name' = >32),

阵列('id' = > 7,'pid= > 6,'name' = >四41),

);

$ I = 0;

功能formattree($ ARR,PID = 0美元){

树=数组();

数组();

全球美元;

如果($ ARR){

foreach(ARR美元美元美元K = > v){

如果($ V { 'pid} = $ PID){ / /

温度= formattree美元($ ARR,$ V { 'id' });

美元美元的儿子'} {温度V = $温度;

树{ } = $ v;

}

}

}

返回$树;

}

print_r(formattree($项));
二、非递归方法

复制代码代码如下所示:

功能gentree($项){

$树(=);

foreach($项目达项目)

如果(isset($项目{ $项{ 'pid} })){

$项目{ $项{ } } { 'pid儿子} { } = $项目{ $项{ 'id' } };

}

别的{

美元树{ } = $项目{ $项{ 'id' } };

}

返回$树;

}

$ =数组(

1 =阵列('id' = > 1,'pid ' = 0,'name' = > 11级),

2 =阵列('id' = > 2,'pid= > 1,'name'的= > 21),

3 =阵列('id' = > 3,'pid= > 1,'name'的= > 23),

4 =阵列('id' = > 4,'pid= > 9,'name'的= >三31),

5 =阵列('id' = > 5,'pid= > 4,'name'的= >四43),

6 =阵列('id' = > 6,'pid= > 9,'name'的= >三32),

7 =阵列('id' = > 7,'pid= > 4,'name'的= >四41),

8 =阵列('id' = > 8,'pid= > 4,'name'的= >四42),

9 =阵列('id' = > 9,'pid= > 1,'name'的= > 25),

10 =阵列('id' = > 10,'pid= > 11,'name'的= > 22),

11 =阵列('id' = > 11,'pid ' = 0,'name' = > 12级),

12 =阵列('id' = > 12,'pid= > 11,'name'的= > 24),

13 =阵列('id' = > 13,'pid= > 4,'name'的= >四44),

14 =阵列('id' = > 14,'pid= > 1,'name'的= > 26),

15 =阵列('id' = > 15,'pid= > 8,'name'的= >五51),

16 =阵列('id' = > 16,'pid= > 8,'name'的= >五52),

17 =阵列('id' = > 17,'pid= > 8,'name'的= >五53),

18 =阵列('id' = > 18,'pid= > 16,'name'的= >六64),

);

print_r(gentree($项));

tag:无限分类实例方法方法两种电脑软件

相关内容