这是我从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 :(得分:15)
试试这段代码:
$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 :(得分:3)
使用mysql group_concat,以避免foreach或使用array_map等。
<admin>
<routers>
<adminhtml>
<args>
<frontName><![CDATA[admin]]></frontName>
</args>
</adminhtml>
</routers>
</admin>
<admin>
<routers>
<adminhtml>
<args>
<frontName><![CDATA[admin]]></frontName>
</args>
</adminhtml>
</routers>
</admin>
答案 2 :(得分:3)
CodeIgniter的数据库实现不支持索引结果数组,您必须在对象数组或关联数组之间进行选择。
这样做是为了使查询更易于维护,因为返回的数字索引更难调试和维护。
CodeIgniter Docs - database results
但是您可以做到,我建议您使用非常有用的内置函数array_column()
array_column()
从输入的单个列中返回值,该列由column_key标识。可选地,可以提供index_key以通过输入数组的index_key列中的值来索引返回数组中的值。
它将把您的codeigniter的关联数组转换为索引数组。
$sql = "SELECT `id` FROM `loc8_groups`";
$query = $this->db->query($sql);
$array = $query>result_array();
$arr = array_column($array,"id");
print_r($arr);
它将产生如下数组:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
答案 3 :(得分:3)
我知道这个问题很旧,但是我想使用array_column分享一个简单的解决方案:
$this->db->select('id');
$result = $this->db->get('loc8_groups')->result_array();
print_r(array_column($result,'id'));
答案 4 :(得分:1)
试试这段代码:
$result=$this->db->select('id')->get('loc8_groups')->result_array();
$array=array_map (function($value){
return $value['id'];
} , $result);
print_r($array);
答案 5 :(得分:0)
您可以这样做:
$sql = "SELECT `id` FROM `loc8_groups`";
$query = $this->db->query($sql);
$result = array();
$index = 0;
while($row = $query->unbuffered_row('array'))
{
$result[] = $row['id'];
$index++;
}
结果将是这样的:
array(100) {
[0]=>
string(1) "1"
[1]=>
string(1) "2"
[2]=>
string(1) "3"
...
没有额外的转换,我完全不认为它是codeigniter的局限性,任何其他为此提供额外功能的框架也可以在后台进行相同的操作,而在codeigniter中,您可以根据需要执行任何操作仔细研究了框架。
答案 6 :(得分:0)
您可以做一些类似的事情:
false
或者也许
from django.contrib import admin
from django.conf.urls import include, url
from rest_slack.views import DRSEventView, DRSCommandView
from django.urls import path
api_patterns = ([
path('web/', DRSEventView.as_view()),
path('events/', DRSCommandView.as_view()),
], 'api')
urlpatterns = [
url(r'^admin/', admin.site.urls),
path('api/v1/', include(api_patterns)),]
答案 7 :(得分:-1)
使用以下脚本将get结果作为包含所有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);