无限级分类批量导入csv-记录

Posted phper8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无限级分类批量导入csv-记录相关的知识,希望对你有一定的参考价值。

 

技术图片

 

 function getTreeKey($arr,$level)
        $count = count($arr)-1;
        $key = ‘‘;
        for ($i=$count;$i>=0;$i--)
            if(($arr[$i][‘level‘]==($level-1)) && $key==‘‘)
                $key = $i;
                continue;
            
        
        return $key;
    

    function upload()
        if(empty($_FILES[‘file‘]))
            $this->json(1,‘无数据‘);
        else
            $file = fopen($_FILES[‘file‘][‘tmp_name‘], ‘r‘);
            fgetcsv($file); //去除第一行
            $arr = [];
            $num = 0;
            while ($data = fgetcsv($file)) 
                $data = eval(‘return ‘ . iconv(‘gbk‘, ‘utf-8‘, var_export($data, true)) . ‘;‘);//编码转换一下
                $data = array_filter($data);
                if($data)
                    foreach ($data as $key=>$v)
                        $v = trim($v);
                        if($key==0 && !empty($v))
                            $parent_key = 0;
                        else if($key !=0 && !empty($v))
                            //查询出上级的名称
                            $parent_key = $this->getTreeKey($arr,$key);
                        
                        //如存在数据 不在往后面
                        if(!empty($v))
                            $arr[$num] = [‘name‘=>$v,‘parent_key‘=>$parent_key,‘level‘=>$key];
                            $num++;
                            continue;
                        
                    
                

            
            if($arr)
                set_time_limit(0);
                foreach ($arr as $k=>&$v)
                    $_data = [
                        ‘pid‘=>$v[‘level‘]==0 ? 0 : ($arr[$v[‘parent_key‘]][‘id‘]?$arr[$v[‘parent_key‘]][‘id‘]:0),
                        ‘name‘=>$v[‘name‘],
                        ‘level‘=>$v[‘level‘]
                    ];
                    $this->db->insert(‘kstable‘,$_data);
                    $v[‘id‘] = $this->db->insert_id();
                
                $this->json(0,‘批量导入成功‘);
            else
                $this->json(1,‘无数据‘);
            
        
    

 

以上是关于无限级分类批量导入csv-记录的主要内容,如果未能解决你的问题,请参考以下文章

PHP原生递归实现无限级分类树状展示数据

php实现无限级分类(递归方法)

ASP 无限级分类

php无限级分类

用迭代实现无限级分类

bootstrap无限级分类 jq拓展 之前的无限级分类的封装版~