我正在尝试将新数据推送到现有数组中$query
:
$query = $this->db->get('questions');
foreach ($query->result_array() as $row) {
$get_answers = $this->db->get_where('answers', array('question_id' => $row['question_id']), 4);
}
//push all the get_answers data into $query array as a subarray
return $query;
我不认为你的$query变量实际上是一个数组,而是一个结果集。 您也应该将其放入数组中。 也许是这样的:
$query = $this->db->get('questions');
$result_array = array();
$i = 0;
foreach($query->result_array() as $row){
$result_array[$i] = $row;
$result_array[$i]['answers'] = $this->db->get_where('answers', array('question_id'=>$row['question_id']), 4);
$i++;
}
var_dump($result_array);
使用
array_merge()
合并两个数组。
只需将其添加到$query:
$query[] = $get_answers;
这是你想做的吗?
$query = $this->db->get('questions');
$answers = array();
foreach($query->result_array() as $row){
$get_answers = $this->db->get_where('answers', array('question_id'=>$row['question_id']), 4);
$answers[] = $get_answers;
}
然后,您可以使用 array_merge()
将$answers[]
附加到 $query
(顺便说一下,对于包含 result
s 的变量来说,这是一个糟糕的名称)。
$returnArray = array_merge($answers, $query);
return $returnArray;