2016-08-03 58 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);