数码资讯
PHP超级牛逼的无限分类树方法
你还是用浪费时间和记忆的分类递归遍历无限制,读这篇文章,我觉得你应该改一下。 这是PHP无限分类树很精简的方法,我看到乔在oschina,参考,整理分享。 复制代码代码如下所示: 功能generatetree($项){ 树=数组(); foreach($项目达项目){ 如果(isset($项目{ $
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
你还是用浪费时间和记忆的分类递归遍历无限制,读这篇文章,我觉得你应该改一下。
这是PHP无限分类树很精简的方法,我看到乔在oschina,参考,整理分享。
复制代码代码如下所示:
功能generatetree($项){
树=数组();
foreach($项目达项目){
如果(isset($项目{ $项{ 'pid} })){
$项目{ $项{ } } { 'pid儿子} { } = $项目{ $项{ 'id' } };
其他{ }
美元树{ } = $项目{ $项{ 'id' } };
}
}
返回$树;
}
$ =数组(
1 =阵列('id' = > 1,'pid ' = 0,'name' = >安徽),
2 =阵列('id' = > 2,'pid ' = 0,'name' = >浙江),
3 =阵列('id' = > 3,'pid= > 1,'name' = >合肥),
4 =阵列('id' = > 4,'pid ' = 3,'name' = >长丰县),
5 =阵列('id' = > 5,'pid= > 1,'name' = >安庆),
);
print_r(generatetree($项));
您可以看到以下打印的结果:
复制代码代码如下所示:
阵列
(
{ 0 }数组
(
{ 1
{ 0
{安徽省中的名称}
{子数组
(
{ 0 }数组
(
{ 3
{ 1
{合肥
{子数组
(
{ 0 }数组
(
{ 4
{ 3
{长丰县
)
)
)
{ 1 }数组
(
{ 5
{ 1
{安庆
)
)
)
{ 1 }数组
(
{ 2
{ 0
{浙江省中的名称}
)
)
上面的生成树方法也可以减少到5行。
复制代码代码如下所示:
功能generatetree($项){
foreach($项目达项目)
$项目{ $项{ } } { 'pid儿子} { $项{ 'id' } } = $项目{ $项{ 'id' } };
返回isset($项目{ 0 } { }儿子')$项目{ 0 } { }:儿子的阵列();
}
在这个无限的分类树结构数据之上是值得学习的,但我不认为这个代码的实际使用是显而易见的。您需要取出格式化的树数据或获得递归。
复制代码代码如下所示:
*如何获取数据格式化树数据
* /
树generatetree美元($项目);
功能gettreedata(美元树){
foreach(美元树达T){
echo $ T { 'name' }。;
如果(isset($ T {孩子' })){
gettreedata($ T {孩子});
}
}
}
gettreedata(美元树);
这是PHP无限分类树很精简的方法,我看到乔在oschina,参考,整理分享。
复制代码代码如下所示:
功能generatetree($项){
树=数组();
foreach($项目达项目){
如果(isset($项目{ $项{ 'pid} })){
$项目{ $项{ } } { 'pid儿子} { } = $项目{ $项{ 'id' } };
其他{ }
美元树{ } = $项目{ $项{ 'id' } };
}
}
返回$树;
}
$ =数组(
1 =阵列('id' = > 1,'pid ' = 0,'name' = >安徽),
2 =阵列('id' = > 2,'pid ' = 0,'name' = >浙江),
3 =阵列('id' = > 3,'pid= > 1,'name' = >合肥),
4 =阵列('id' = > 4,'pid ' = 3,'name' = >长丰县),
5 =阵列('id' = > 5,'pid= > 1,'name' = >安庆),
);
print_r(generatetree($项));
您可以看到以下打印的结果:
复制代码代码如下所示:
阵列
(
{ 0 }数组
(
{ 1
{ 0
{安徽省中的名称}
{子数组
(
{ 0 }数组
(
{ 3
{ 1
{合肥
{子数组
(
{ 0 }数组
(
{ 4
{ 3
{长丰县
)
)
)
{ 1 }数组
(
{ 5
{ 1
{安庆
)
)
)
{ 1 }数组
(
{ 2
{ 0
{浙江省中的名称}
)
)
上面的生成树方法也可以减少到5行。
复制代码代码如下所示:
功能generatetree($项){
foreach($项目达项目)
$项目{ $项{ } } { 'pid儿子} { $项{ 'id' } } = $项目{ $项{ 'id' } };
返回isset($项目{ 0 } { }儿子')$项目{ 0 } { }:儿子的阵列();
}
在这个无限的分类树结构数据之上是值得学习的,但我不认为这个代码的实际使用是显而易见的。您需要取出格式化的树数据或获得递归。
复制代码代码如下所示:
*如何获取数据格式化树数据
* /
树generatetree美元($项目);
功能gettreedata(美元树){
foreach(美元树达T){
echo $ T { 'name' }。;
如果(isset($ T {孩子' })){
gettreedata($ T {孩子});
}
}
}
gettreedata(美元树);
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。