php thinkphp 复用无限极分类,写入到数据库中
调取出相关的分类,复制一遍,写入到数据库中
从后台调取出指定的树状分类,结构不变,复制一遍,写入到数据库中
1、调取出的树状分类,id和pid有关联逻辑
2、function.php 方法
/* * === 复用相关N级分类 === * $list 一维数组类型,id和pid需有逻辑关联 * $root=0 意思是pid等于零代表一级结构 * $cp_id 产品id,我需要更换一下产品id * * 开发时间: * 2020-08-18 * * 开发者: * 遇事稳坐钓鱼台 https://www.cnblogs.com/zc290987034 * */ function tree_bom_fl_fuyong($list,$root=0,$cp_id){ if(!$cp_id)return 0; $packData = array(); $sql = M('scm_bom_fl'); foreach ($list as $k => $v) { $packData[$v['id']] = $v;//将所有的分类id作为数组key //先将所有数据写到数据库,pid统一默认的是零0 $fl_1['paixu'] = $v['paixu']; $fl_1['chanpin_id'] = $cp_id; $fl_1['title'] = $v['title']; $fl_1_id = $sql->add($fl_1); $packData[$v['id']]['aid'] = $fl_1_id;//将每一个新增的id放到统一指定的字段中 } //利用引用,将每个分类添加到父类child数组中,这样一次遍历即可形成树形结构。 foreach ($packData as $key => $val) { if ($val['pid'] != $root) {//代表跟节点 $shangji_aid = $packData[$val['pid']]['aid'];//找出他上级的aid $aid = $val['aid'];//当前要修改的aid $sql->where(array('id'=>$aid))->setField('pid',$shangji_aid); } } return 1; }
3、效果