【发布时间】:2017-09-27 03:12:18
【问题描述】:
当创建一个数组并从数据库中获取某个列的值时,我有一个数组格式是否相同?
$result['user_name'] 和 $result[0]->user_name
【问题讨论】:
-
提供更多细节,一些代码或数据结构等。通常在codeigniter中我们使用“$query->result_array()”来获取结果作为关联数组
标签: php arrays codeigniter
当创建一个数组并从数据库中获取某个列的值时,我有一个数组格式是否相同?
$result['user_name'] 和 $result[0]->user_name
【问题讨论】:
标签: php arrays codeigniter
此时,它只是“常规”PHP。正如@RashFlash 所指出的,在 Codeigniter 中,很多时候,一个数组或对象是从数据库结果中创建的。相关文档在这里:https://www.codeigniter.com/userguide3/database/results.html
所以你的第一个$result['user_name'] 只是引用一个数组,其中键是'user_name',而后者是引用数组中第一个对象的属性。
数据库结果的处理/显示通常类似于这个基于对象的示例(取自上述文档)。
$query = $this->db->query("YOUR QUERY");
foreach ($query->result() as $row)
{
echo $row->title;
echo $row->name;
echo $row->body;
}
或
$query = $this->db->query("YOUR QUERY");
foreach ($query->result_array() as $row)
{
echo $row['title'];
echo $row['name'];
echo $row['body'];
}
【讨论】:
当创建一个数组并从 数据库,我有一个数组格式,是否相同?
$result['user_name'] and $result[0]->user_name
在 codeigniter 中
$query->result() ; // returns object
$query->result_array(); // returns array
$query->row(); // returns object
$query->row_array(); // returns array
在 PHP 中(非常基础)
要访问数组元素,您必须使用 [] 或者您看不到那么多的元素,但您也可以使用 {}。
echo $array[0];
echo $array{0};
要访问对象属性,您必须使用->。
echo $object->property;
如果您在另一个对象中有一个对象,您只需使用多个-> 即可获取您的对象属性。
echo $objectA->objectB->property;
访问数组:
$ php -r '$a=array("s"=>123); echo $a{"s"}.PHP_EOL; echo $a["s"].PHP_EOL;'
123
123
访问对象:
php -r '$a=$b=new stdClass; $a->s="test"; $b->t="second"; $a->r=$b; echo $a->s.PHP_EOL; echo $a->r->t.PHP_EOL;'
test
second
【讨论】: