2016-08-03 15 views
3

這裏是我的查詢,在t笨:擺脫單一列中的所有值作爲數組

$sql = "SELECT `id` FROM `loc8_groups`"; 
$query = $this->db->query($sql); 
print_r($query>result()); 

其產品陣列導致這樣的方式得到一列。

Array 
(
    [0] => stdClass Object 
     (
      [id] => 1 
     ) 

    [1] => stdClass Object 
     (
      [id] => 2 
     ) 

    [2] => stdClass Object 
     (
      [id] => 3 
     ) 

) 

但我想結果作爲單個關聯數組,包含所有ids

+0

爲什麼不將其轉換後的結果進行檢索? – jitendrapurohit

回答

9

試試這個代碼:

$sql = "SELECT `id` FROM `loc8_groups`"; 
$query = $this->db->query($sql); 
$array1=$query>result_array(); 
$arr = array_map (function($value){ 
    return $value['id']; 
} , $array1); 
print_r($arr); 
+1

在codeigniter中沒有辦法? –

+1

只有這個解決方案。 CI只有4個函數返回結果 - result(),result_array(),row(),row_array(); http://www.codeigniter.com/user_guide/database/examples.html – Lakremon

+4

代碼點火器就是這樣的垃圾哈哈 –

2

用mysql GROUP_CONCAT,避免的foreach或使用array_map等。

$sql = "SELECT group_concat(id separator ',') as id FROM `loc8_groups`"; 
$query = $this->db->query($sql); 
$array1 = $query->row_array(); 
$arr = explode(',',$array1['id']); 

print_r($arr); 
-2

使用下面的腳本得到結果爲包含所有的ID

$sql = "SELECT group_concat(userid separator ',') as id FROM `users`"; 
$query = $this->db->query($sql); 
$array1 = $query->row_array(); 
$arr = explode(',',$array1['id']); 

print_r($arr); 
0

試試這個代碼單一關聯數組:

$result=$this->db->select('id')->get('loc8_groups')->result_array(); 

$array=array_map (function($value){ 
       return $value['id']; 
      } , $result); 

print_r($array);