码迷,mamicode.com
首页 > 编程语言 > 详细

数组无限分类树模型序列化

时间:2019-09-19 12:08:25      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:笔记本   树模型   无限   highlight   递归   产品   序列   pre   电子   

<?php
$array = array(
    array(‘id‘=>‘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);

  这里只是生成了树模型数组,具体调用!

数组无限分类树模型序列化

标签:笔记本   树模型   无限   highlight   递归   产品   序列   pre   电子   

原文地址:https://www.cnblogs.com/firebirdweb/p/11548235.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!