在数据库中有P20190199139编号,重复了将近几十个,所以循环处理,依次追加增1
public function tests() { $results=$this->db->query('select pro_sn from (SELECT * FROM `t_pro_info` where serialid=201901 GROUP by pro_sn having count(pro_sn)>1) as result')->result_array(); $array_sn=array_column($this->db->select('pro_sn')->where('serialid',201901)->get('t_pro_info')->result_array(),'pro_sn'); foreach($results as $vals) { $pros=$this->db->select('pro_sn,pro_id')->where('pro_sn',$vals['pro_sn'])->get('t_pro_info')->result_array(); $i=0; foreach($pros as $xsa) { $i++; //$pros_sn='P'.(substr($xsa['pro_sn'],1)+$i); $pros_sn=$xsa['pro_sn']; if (empty($this->is_arrays($array_sn,$pros_sn))) { continue; } else { $sn=$this->is_arrays($array_sn,$pros_sn); $this->db->where('pro_id',$xsa['pro_id'])->update('t_pro_info',array('pro_sn'=>$sn)); array_push($array_sn,$sn); // $array_sn=array_column($this->db->select('pro_sn')->where('serialid',201901)->get('t_pro_info')->result_array(),'pro_sn'); } } } } public function is_arrays($arrs,$ned,&$j=0) { $j++; if (in_array($ned,$arrs)) { $pros='P'.(substr($ned,1)+$j); return $this->is_arrays($arrs,$pros,$j); } else { //var_dump($ned); return $ned; } }转载于:https://www.cnblogs.com/mengluo/p/11490385.html
相关资源:递归查询