数组无限分类树模型序列化
2020-12-13 13:59
标签:笔记本 树模型 无限 highlight 递归 产品 序列 pre 电子 这里只是生成了树模型数组,具体调用! 数组无限分类树模型序列化 标签:笔记本 树模型 无限 highlight 递归 产品 序列 pre 电子 原文地址:https://www.cnblogs.com/firebirdweb/p/11548235.html‘1‘, ‘name‘=>‘电子产品‘, ‘parent_id‘=>0),
array(‘id‘=>‘2‘, ‘name‘=>‘电脑‘, ‘parent_id‘=>1),
array(‘id‘=>‘3‘, ‘name‘=>‘笔记本‘, ‘parent_id‘=>2),
array(‘id‘=>‘4‘, ‘name‘=>‘台式电脑‘, ‘parent_id‘=>2),
array(‘id‘=>‘5‘, ‘name‘=>‘食物‘, ‘parent_id‘=>0),
array(‘id‘=>‘6‘, ‘name‘=>‘蔬菜‘, ‘parent_id‘=>5),
array(‘id‘=>‘7‘, ‘name‘=>‘白菜‘, ‘parent_id‘=>6),
array(‘id‘=>‘8‘, ‘name‘=>‘萝卜‘, ‘parent_id‘=>6),
);
class TreeCate
{
function __construct ($data) {
$this->data = $data;
$this->array = array();
}
public function getTree($parent_id = 0)
{
$tree = [];
if (count($this->data) > 0) {
foreach ($this->data as $key => $value) {
//删除已经序列过的数组
unset($this->data[$key]);
if ($value[‘parent_id‘] == $parent_id) {
$children = $this->getTree($value[‘id‘]);
if (!empty($children)) {
//生成子树模型,因为用了递归,从最后一层返回生成
$value[‘children‘] = $children;
}
$tree[] = $value;
}
}
return $tree;
}
}
}
$tree_cates = new TreeCate($array);
$cates = $tree_cates->getTree();
print_r($cates);
下一篇:C#编程(3_类型转换)