2012-08-10 2 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

+0

그래, 그게 무슨 뜻인지,하지만 난 여전히 기존의 데이터가 $ 쿼리 – user1551482

+0

에서 원하는 사람이 아니라고 생각했는데, 이것은 잘 연구되었거나 유용하지 않다고 생각했다. [더 나은 질문을하는 방법에 대한 도움말은이 기사를 읽으십시오.] (http://stackoverflow.com/questions/how-to-ask). 가이드 라인을 따르면 더 적은 수의 득표와 더 많은 득표를 얻을 수 있습니다. – Matt

답변

1

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

이것은 좋은 예제입니다. result_array를 반환하면 JSON으로 인코딩됩니다. 작동합니까? – user1551482

+0

인코딩에 문제를 일으킬만한 내용이 없다고 가정해야합니다. –

+0

괜찮아요 kool 감사 – user1551482

0

사용 array_merge() 두 배열을 병합 할 수 있습니다.

간단히 $ 쿼리에 추가 :

$query[] = $get_answers; 
+0

나는 병합하기를 원하지 않는다. 배열에 get_answers를 하위 배열로 삽입하고 싶다. 감사합니다 – user1551482

+0

@ user1551482 : 내 편집을 참조하십시오. –

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[] (그런데, result의를 포함하는 변수에 대한 끔찍한 이름입니다) $query에를 추가 할 수 있습니다.

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

return $returnArray; 
관련 문제