关于一个无极限分类的问题

在一个category.txt文件里,有如下内容

1 单缸洗衣机 6
2 冰箱 5
3 苹果 4
4 水果 0
5 电器 0
6 洗衣机 5
……

要求将文件的数据按层级列出,效果如下

[
'水果' => [
'苹果' => []
],
'电器' => [
'冰箱' => [],
'洗衣机' => [
'单缸洗衣机' => []
]
]
]
// 代码如下
<?php
$arr = array(
array('id' => 1, 'name' => '单缸洗衣机', 'pid' => 6),
array('id' => 2, 'name' => '冰箱', 'pid' => 5),
array('id' => 3, 'name' => '苹果', 'pid' => 4),
array('id' => 4, 'name' => '水果', 'pid' => 0),
array('id' => 5, 'name' => '电器', 'pid' => 0),
array('id' => 6, 'name' => '洗衣机', 'pid' => 5),
);

function category($arr, $pid = 0)
{
\(tree = array(); // 主要卡在这里 foreach (\)arr as $key => \(val) { if (\)val['pid'] == $pid) {
\(tree[\)val['name']] = category($arr, $val['id']);
}
}

return $tree;
}

echo '

';
print_r(category($arr));
echo '
';
?>
// 效果如下
Array
(
[水果] => Array
(
[苹果] => Array
(
)

)

[电器] => Array
(
[冰箱] => Array
(
)

[洗衣机] => Array
(
[单缸洗衣机] => Array
(
)

)

)

)

看到有问题的朋友欢迎指正,谢谢!

posted @ 2017-08-12 20:20  凭栏知潇雨  阅读(156)  评论(0)    收藏  举报