此问题在此处已有答案:
Is there a function to extract a 'column' from an array in PHP?(15个答案)
四个月前关门了。
我在Codeigniter中使用一个查询来返回属于某个用户的所有行的id。
$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 )
?
2条答案
按热度按时间c0vxltue1#
CodeIgniter文档(尤其是query results)没有列出任何可以生成平面数组结果的内容(就像
PDOStatement::fetchAll
提供的PDO::FETCH_COLUMN
模式)。因此,数组结果需要在代码中进行平面化,例如使用foreach
循环:或者使用专用
array_column
:或者与通用
array_reduce
:如果你懒得在每次选择一列时添加几行代码,你需要调整CodeIgniter。比如添加一些选项或者在选择单列时返回扁平数组。我建议添加一个选项
1qczuiv02#
下面可以是另一种方法,我不知道它比公认的答案有什么好处。
假设你将函数的输出存储在
$result
中,那么你可以做如下操作:它将打印
数组([0] =〉数组([0] =〉8 [1] =〉6 [2] =〉7))
您可以通过$transposed[0]访问您想要的内容
数组([0] =〉8 [1] =〉6 [2] =〉7)