CodeIgniter中MySQL查询如何返回无表头一维数组
解决CodeIgniter查询返回一维数组的问题
嘿,这个需求其实很好实现,给你几种简洁的方案,根据你的CodeIgniter版本和习惯选就行:
方法1:用PHP内置的array_column()函数
这是最通用的方法,不管CodeIgniter版本,只要PHP版本在5.5及以上都能用。直接从二维结果数组里提取asd列的值:
public function m_get_wer() { $sql = "SELECT `asd` FROM test2"; $data = $this->db->query($sql)->result_array(); // 提取所有asd字段的值,组成一维数组 return array_column($data, 'asd'); }
输出结果就是你想要的:Array([0] => A, [1] => B, [2] => C, [3] => D)
方法2:用CodeIgniter内置的pluck()方法(推荐)
如果你的CodeIgniter版本是3.1.0及以上,官方提供了更便捷的pluck()方法,专门用来获取单列数据的一维数组,连手动处理的步骤都省了:
public function m_get_wer() { // 链式查询+pluck直接返回一维数组 return $this->db->select('asd')->from('test2')->get()->pluck('asd'); }
这个写法更简洁,完全贴合CodeIgniter的ORM风格,代码可读性也更高。
方法3:手动循环兼容低版本PHP
如果你的PHP版本低于5.5(现在这种情况很少见了),可以用foreach手动遍历提取:
public function m_get_wer() { $sql = "SELECT `asd` FROM test2"; $data = $this->db->query($sql)->result_array(); $result = []; foreach ($data as $item) { $result[] = $item['asd']; } return $result; }
这种方法兼容性最好,但代码量相对多一点。
这几种方法都能帮你得到不带键名的一维数组,根据你的实际环境选就行~
内容的提问来源于stack exchange,提问作者Elroy Hardanto
相关产品推荐
相关产品推荐

