案例:一条新闻对应多个分类栏目,,但是插入数据库不能选择重复的栏目,,若是选择则用函数过滤,一下
array_flip() 函数用于反转/交换数组中所有的键名以及它们关联的键值。
array_flip() 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失。
如果原数组中的值的数据类型不是字符串或整数,函数将报错。
//添加新闻之后,将cate_id与news_id存放在news_cate中间表 protected function _after_insert($data, $option) { $cateId = I('post.cate_id'); $cateId = array_flip(array_flip($cateId)); $cate = array(); foreach($cateId as $v){ if($v){ $cate[] = $v; } } if($cate) { $ncModel = M('NewsCate'); foreach ($cate as $v) { $ncModel->add(array( 'news_id' => $data['id'], 'cate_id' => $v, )); } } }