在 PHP 中推送现有数组对象中的元素

pushing elements in an existing array object in PHP

我有来自查询的数据。我想插入它的一些数组变量。我有 ID,然后我尝试进行查询并将查询插入到变量中。

我的查询结果是这样的数据:

Array ( [0] => stdClass Object ( [id] => 27 [message] => {"msg_subject":"hello","msg_content":"world"} [date] => 2020-05-24 15:03:40 [parent_msg] => 0 ) ) 

现在我想在数组对象中插入一个数据,最终结果是这样的:

Array ( [0] => stdClass Object ( [id] => 27 [message] => {"msg_subject":"Hooy","msg_content":"Ok ra?"} [date] => 2020-05-24 15:03:40 [parent_msg] => 0 ) [read] => 0 ) 

这是我试过的方法:

foreach($query->result_array() as $row){                
     $this->db->select('mp.*');    
     $this->db->from('message_tbl mp');
     $this->db->join('message_tbl mc', 'mc.parent_msg = mp.id');                
     $this->db->where('mc.id',$row['msg_id']);
     $data = $this->db->get()->result();
        array_push($data,$row['read']);
    }
print_r($data);

然后当我打印我的数据时,这是输出:

Array ( [0] => stdClass Object ( [id] => 27 [message] => {"msg_subject":"Hooy","msg_content":"Ok ra?"} [date] => 2020-05-24 15:03:40 [parent_msg] => 0 ) [1] => 0 ) 

您需要将 $row['read'] 值添加到结果对象,然后将该对象推送到您的 $data 数组。这样的事情应该有效:

$data = array();
foreach($query->result_array() as $row){                
     $this->db->select('mp.*');    
     $this->db->from('message_tbl mp');
     $this->db->join('message_tbl mc', 'mc.parent_msg = mp.id');                
     $this->db->where('mc.id',$row['msg_id']);
     $result = $this->db->get()->result()[0];
     $result->read = $row['read'];
     array_push($data, $result);
}
print_r($data);