使用代码点火器将阵列推送到现有数组中


pushing arrays into an exisiting array using codeigniter?

我正在尝试将新数据推送到现有数组中$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;