在一个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 '<pre>';
print_r(category($arr));
echo '</pre>';
?>
// 效果如下
Array
(
[水果] => Array
(
[苹果] => Array
(
)
)
[电器] => Array
(
[冰箱] => Array
(
)
[洗衣机] => Array
(
[单缸洗衣机] => Array
(
)
)
)
)
看到有问题的朋友欢迎指正,谢谢!