2015-08-28 30 views
1

我有這樣的代碼,在我的模型:笨SELECT從表問題

public function get_all_distinct() { 
     $query = 'SELECT DISTINCT(tag) FROM `tags_to_questions`'; 
     $result = array(
      'assignedTags' => array(), 
      'availableTags2' => $this->db->query($query)->result_array(), 

     ); 
     return json_encode($result); 
    } 
} 

而這個代碼將返回我的數組(JSON型),如:

{"assignedTags":[],"availableTags2":[{"tag":"php"},{"tag":"mysql"}]} 

什麼在改變我代碼來獲得像這樣的數組:

{"assignedTags":[],"availableTags2":[{"php"},{"mysql"}]} 

我只需要鍵值而不是鍵。

+0

在您的json添加第二個參數爲TRUE – aldrin27

+0

json_encode不接受真正的第二個參數。 http://php.net/manual/en/function.json-encode.php – gmponos

回答

0

你將需要一個foreach來做到這一點。沒有自動的方式。

$tmp = $this->db->query($query)->result_array(); 
foreach($tmp as $cell=> $row) { 
    $tmp_result[] = $row; 
} 

$result = array(
    'assignedTags' => array(), 
    'availableTags2' => $tmp_result, 
); 
return json_encode($result); 
+0

它將返回與我的結果相同的結果。我想出瞭如何做到這一點。謝謝。 $ query2 = $ this-> db-> query($ query); ($ query2-> result()as $ row) { $ availableTags [] = $ row-> tag; } –

+0

是的,你可能是對的,因爲變量名稱錯誤。我做了一個編輯。 – gmponos

0

我不認爲這是一個可行的或沒有,但你可以用array_column作爲

public function get_all_distinct() { 
     $query = 'SELECT DISTINCT(tag) FROM `tags_to_questions`'; 
     $result = array(
      'assignedTags' => array(), 
      'availableTags2' => $this->db->query($query)->result_array(), 

     ); 
     $result['availableTags2'] = array_column($result['availableTags2'],'tag'); 
     return json_encode($result); 
    } 
} 
+0

那麼我們在哪裏與問題。它對你有幫助嗎? –

0

使用array_values()。這將做到:

public function get_all_distinct() { 
     $query = 'SELECT DISTINCT(tag) FROM `tags_to_questions`'; 
     $result = array(
      'assignedTags' => array(), 
      'availableTags2' => array_values($this->db->query($query)->result_array()), 

     ); 
     return json_encode($result); 
    } 
}