1. 程式人生 > 實用技巧 >php thinkphp 複用無限極分類,寫入到資料庫中

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、效果