在使用ci框架进行查询时,因为要进行两次查询,一次查询$whereArr条件下的总记录数,一次分页查询10条记录,之前一直是使用字符拼接的方式获取$whereStr,然后放到$this->db->where()中,这次针对框架ar操作做了新的封装,想着,用数组的形式传参,前面部分根据不同判断条件往$whereArr中添加新项。

习惯地用了$arr[] = array('aa'=>'bb')的形式,结果报错,说不能0=>Array,看了一下DB_active_rec.php里面针对where方法的封装,最后调用的是foreach 遍历$k->$v,$k怎么会有0,1之类的呢,输出一下$whereArr,发现确实是属于索引数组。原来$arr[] = array('aa'=>'bb')操作生成的数组就是索引数组,想到之前使用过array_merge()方法对关联数组进行重组,就试了一下,确实可行,网上也有用array_map()对索引每一项进行处理,但总觉的太麻烦。

最简单的方式就是用操作关联数组的方式添加新项,即:$arr['aa'] = 'bb'