CodeIgniter,如何获取单个元素而不是大小为1的数组?

时间:2013-09-25 12:35:39

标签: php arrays codeigniter activerecord

我是CodeIgniter的新手。我喜欢它,它很棒,但有一个问题几天都无法解决。

我正试图通过它的id得到一行,如下所示:

$query = $this->db->get_where('content', ['id' => $id]);
$the_content = $query->result_array();

但是,它会产生一个大小为1的数组,如下所示:

$the_content = [ 0 => ['id' => 1, 'content'=> 'abc']];

所以我总是要把它转换成第一个这样的元素:

$the_content= $the_content[0];

但你可以理解为什么我不喜欢这个。

我也试过$query->result();,仍然是一样。

我确定我在这里错过了一个简单的观点,但是什么?

如何从ActiveRecord而不是数组中获取单个元素?

3 个答案:

答案 0 :(得分:3)

解决方案是:

$the_content = $query->row_array();

返回单维数组。要检索你会写:

echo $the_content['content'];

答案 1 :(得分:3)

使用first_row()

$row = $query->first_row();

如果你想要一个数组:

$row = $query->first_row('array')

或者,如果您想要返回特定行,您可以在第一个参数中将行号提交为数字:

$row = $query->row_array(3);

如果你想得到第一行的字段:

$field = $query->first_row()->field;
echo $field;

请参阅文档here

答案 2 :(得分:1)

有一个函数可以从查询中获取第一行:

$the_content = $query->first_row('array')

参考:http://ellislab.com/codeigniter/user-guide/database/results.html