Php 在codeigniter中将数组转换为字符串

Php 在codeigniter中将数组转换为字符串,php,codeigniter,codeigniter-3,codeigniter-query-builder,Php,Codeigniter,Codeigniter 3,Codeigniter Query Builder,我在控制器中有这样一个函数。我需要将$data1['hasil1']的结果插入tampilInduk public function sikap(){ $person=$this->session->userdata('idperson'); $data1['hasil1']=$this->M_Guru->tampilNik($person); $data2['hasil2']=$this->M_Guru->tampilInduk($

我在控制器中有这样一个函数。我需要将
$data1['hasil1']
的结果插入tampilInduk

public function sikap(){
    $person=$this->session->userdata('idperson');
    $data1['hasil1']=$this->M_Guru->tampilNik($person);

    $data2['hasil2']=$this->M_Guru->tampilInduk($data1);
    $this->load->view('sidebarGuru');
    $this->load->view('navbarGuru');
    $this->load->view('kompetensiSikap',$data1+$data2);
}
我有这样的模型代码

public function tampilInduk($data1){
        $this->db->select('induk');
        $this->db->from('kelas b');
        $this->db->join('siswa_kelas c','c.namakelas= b.namakelas','c.thnakademik=b.thnakademik','c.kdtingkat=b.kdtingkat','right');
        $this->db->where('nik',$data1);
        $data = $this->db->get(); //mengambil seluruh data
        return $data->result();
    }

public function tampilNik($person){
        $this->db->select('nik');
        $this->db->from('guru');
        $this->db->where('idperson',$person);
        $data=$this->db->get();
        return $data->row()->nik;
    }

但是错误说明需要先将变量转换为字符串。您能帮助我如何将数组转换为字符串吗?

您可以使用
$this->db->where('nik',$data1['hasil1')而不是
$this->db->where('nik',$data1)

您可以针对您的问题尝试以下解决方案:

public function tampilInduk($data1) {
        $this->db->select('induk');
        $this->db->from('kelas b');
        $this->db->join('siswa_kelas c', 'c.namakelas= b.namakelas', 'c.thnakademik=b.thnakademik', 'c.kdtingkat=b.kdtingkat', 'right');
        $this->db->like('nik',$data1['hasil1']);
        $data = $this->db->get(); //mengambil seluruh data
        return $data->result();
    }
我希望这会有所帮助。

这应该可以:

public function sikap(){
    $person=$this->session->userdata('idperson');
    $data1['hasil1']=$this->M_Guru->tampilNik($person);

    $data2['hasil2']=$this->M_Guru->tampilInduk($data1['hasil1']);
    $this->load->view('sidebarGuru');
    $this->load->view('navbarGuru');
    $this->load->view('kompetensiSikap',$data1+$data2);
}


   public function tampilInduk($nik){
        $this->db->select('induk');
        $this->db->from('kelas b');
        $this->db->join('siswa_kelas c','c.namakelas= b.namakelas','c.thnakademik=b.thnakademik','c.kdtingkat=b.kdtingkat','right');
        $this->db->where('nik',$nik);
        $data = $this->db->get(); //mengambil seluruh data
        return $data->result();
    }

public function tampilNik($person){
        $this->db->select('nik');
        $this->db->from('guru');
        $this->db->where('idperson',$person);
        $data=$this->db->get();
        return $data->row()->nik;
    }

首先解释,
$data['hasil1']
打印的内容,然后解释下一个函数中where语句中应该包含该内容的哪一列。
我需要将$data1['hasil1']的结果插入到tampilInduk。
插入查询
$data['hasil1']
这个变量只得到一个值
print\r($data['hasil1'])是什么?数组([0]=>stdClass对象([nik]=>4144222))@AlexA PHP遇到错误严重性:注意消息:尝试获取非Object的属性重试。忘了什么。更新我尝试了上述两种方法,但结果仍然相同遇到了一个PHP错误严重性:注意消息:尝试获取非对象的属性您正在获取
Array([0]=>stdClass对象([nik]=>4144222))
correct??在这种情况下,您将其分配给
$data1['hasil1']
,在我给出的第一个例子中,您将其传递给函数,这意味着(如果您获得上述数组),那么
$data['hasil1'][0]->nik
是获得它的正确方法。你在使用我更新的代码吗?我之前更改了一些内容…你能1)在函数中打印($data1)
并报告2)在你的问题中添加函数
tampilNik