2012-08-10 19 views
-1

我想新的數據推到一個現有的陣列$query使用codeigniter將數組推入現有數組?

$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; 
+0

...你的意思是'$ query [] = $ get_answers'? – Matt 2012-08-10 16:11:51

+0

你是多數民衆贊成我的意思,但我仍然希望現有的數據是他們從$查詢 – user1551482 2012-08-10 16:12:38

+0

不是從我,但我猜有人不認爲這是很好的研究或沒有用。 [閱讀此提示如何提出更好的問題](http://stackoverflow.com/questions/how-to-ask)。按照指導原則,您將獲得更少的回票和更多的選票。 – Matt 2012-08-10 16:17:15

回答

1

我不認爲你的$查詢變量實際上是一個數組,而是一個結果集。你也應該把它放入一個數組中。也許是這樣的:

$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); 
+0

這是一個非常好的例子,謝謝你,當我返回result_array和json編碼它,它會工作嗎? – user1551482 2012-08-10 16:20:05

+0

它應該假定沒有任何內容會導致編碼問題。 – 2012-08-10 16:21:26

+0

好吧庫爾謝謝 – user1551482 2012-08-10 16:21:50

0

使用array_merge()合併兩個數組。

只需將它添加到$查詢:

$query[] = $get_answers; 
+0

我不想合併我想插入一個數組作爲子陣列get_answers!謝謝 – user1551482 2012-08-10 16:10:57

+0

@ user1551482:看我的編輯。 – 2012-08-10 16:12:41

0

這是你想要做什麼?

$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個變量可怕名)。

$returnArray = array_merge($answers, $query); 

return $returnArray;