2012-09-22 60 views
3

我在Codeigniter中使用查詢來返回屬於用戶的所有行的ID。codeigniter flatten查詢結果數組

$this->db->select('id'); 
$this->db->where('user_id', 99); 
$query = $this->db->get('my_table'); 
return $query->result_array(); 

這將返回

Array ([0] => Array ([id] => 8) [1] => Array ([id] => 7) [2] => Array ([id] => 6)) 

是否有可能返回一個平坦的陣列狀

Array ([0] => 8 [1] => 6 [2] => 7) 

回答

7
$b = array(); 
foreach($query->result_array() as $a) { 
    $b[] = $a['id']; 
} 
return $b; 

如果您每次選擇一列時懶惰添加幾行,您需要調整Codeigniter。就像添加一些選項或者在選擇單列時返回平坦數組一樣。我會sugest增加一個選項

+1

謝謝!我希望codeignter具有內置函數。 – CyberJunkie

+0

將函數的結果存儲在變量中而不是每個循環調用函數都不是更好嗎? – user2019515

0

以下可以是另一種方式的洞它。我不知道它比接受的答案有什麼優勢。

假設您正在存儲函數的輸出$result。然後可以執行如下:

array_unshift($result, null); 
$transposed = call_user_func_array("array_map", $result); 
print_r($transposed); 

它將打印

陣列([0] =>數組([0] => 8 [1] => 6 [2] => 7 ))

並且可以訪問要通過$什麼轉置[0]

陣列([0] => 8 [1] => 6 [2] => 7)