在我的模型中,有两个函数可以从数据库中获取数据。两者都将数据作为对象数组返回。下面给出了一个函数。
public function get_camaramens($data,$evdata)
{
$this->db->select('emp_position.employee_id');
$this->db->from('emp_position');
$this->db->where('emp_position.position','c');
$this->db->where('emp_position.employee_id NOT IN ('.implode(",",$data).')');
$query=$this->db->get('',$evdata);
return $query->result();
}
在我的控制器中,我接受以下结果。
$sdata['camaramen_list'] = $this->emp_position_model>get_camaramens($data,$evdata['no_of_cams']);
模型中的其他功能是
public function get_camara_assistants($data,$sdata,$evdata)
{
$cdata = array();
foreach($sdata['camaramen_list'] as $row) {
$cdata[] = $row->employee_id;
}
$this->db->select('emp_position.employee_id');
$this->db->from('emp_position');
$this->db->where('emp_position.position','ca');
$this->db->where('emp_position.employee_id NOT IN ('.implode(", ",$data).')');
$this->db->where('emp_position.employee_id NOT IN ('.implode(", ",$cdata).')');
$query=$this->db->get('',$evdata);
return $query->result();
}
在我的控制器中,我想将上述函数的结果添加到同一个对象数组$ sdata中。但如果我把如下相同的名称替换为前一个数组。
$sdata['camaramen_list'] = $this->emp_position_model->get_camara_assistants($data,$sdata,$evdata['no_of_cams']);
请有人告诉我正确的方法。
答案 0 :(得分:1)
尝试理解基本概念:
$sdata['new']['one'] = 'Some other value';
我想在该数组中再添加一个值,我这样做:
$scope.wakeup = function() {
$http.get('getTimings').then(function() {
}
}
//此值会覆盖旧值,因为您要在同一索引上添加值,这将覆盖已存在的值。
所以这样做:
{{1}}
添加新值,例如:
{{1}}
在这种情况下,有两个差异索引旧,一个。所以这里没有覆盖。
或将其保存在某些差异索引上。
答案 1 :(得分:0)
如果两个结果都是数组,则可以使用array_merge将一个或多个数组合并为一个新数组。
$sdata['camaramen_list'] = array_merge(
$this->emp_position_model->get_camaramens($data,$evdata['no_of_cams']),
$this->emp_position_model->get_camara_assistants($data,$sdata,$evdata['no_of_cams']);
);
var_dump($sdata['camaramen_list']);//the new array
答案 2 :(得分:0)
如果使用相同的变量,则可以覆盖。有两种方法可以做到。
array_merge
您可以按array_merge
合并两个数组。
$result1 = $this->emp_position_model>get_camaramens($data,$evdata['no_of_cams']);
$result2 = $this->emp_position_model->get_camara_assistants($data,$sdata,$evdata['no_of_cams']);
$combined_result = array_merge($result1, $result2);
UNION
选择Model $this->db->select('emp_position.employee_id');
$this->db->from('emp_position');
$this->db->where('emp_position.position','c');
$this->db->where('emp_position.employee_id NOT IN ('.implode(",",$data).')');
$compiled_1 = $this->db->get_compiled_select();
$this->db->select('emp_position.employee_id');
$this->db->from('emp_position');
$this->db->where('emp_position.position','ca');
$this->db->where('emp_position.employee_id NOT IN ('.implode(", ",$data).')');
$this->db->where('emp_position.employee_id NOT IN ('.implode(", ",$cdata).')');
$compiled_2 = $this->db->get_compiled_select();
$query = $this->db->query('( ' .$compiled_2 .' ) UNION ALL ( '. $compiled_1 .' );' );
如果您想创建新索引,可以使用$sdata['camaramen_list']['one']
,$sdata['camaramen_list']['two']
。否则,请改用我的方式。
希望这会有所帮助。
答案 3 :(得分:0)
试试这个
$data['data1']= $this->emp_position_model->get_camaramens($data,$evdata['no_of_cams']);
$data2['data2']= $this->emp_position_model->get_camara_assistants($data,$sdata,$evdata['no_of_cams']);
$sdata['camaramen_list']=array_merge($data,$data2);
$this->load->view('your_view_page',$sdata['camaramen_list'] );