【问题标题】:Codeigniter array formatCodeigniter 数组格式
【发布时间】:2017-09-27 03:12:18
【问题描述】:

当创建一个数组并从数据库中获取某个列的值时,我有一个数组格式是否相同?

$result['user_name']$result[0]->user_name

【问题讨论】:

  • 提供更多细节,一些代码或数据结构等。通常在codeigniter中我们使用“$query->result_array()”来获取结果作为关联数组

标签: php arrays codeigniter


【解决方案1】:

此时,它只是“常规”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'];
}

【讨论】:

    【解决方案2】:

    当创建一个数组并从 数据库,我有一个数组格式,是否相同?

    $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
    

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 2018-02-24
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 2011-03-15
      • 1970-01-01
      • 2012-11-10
      • 1970-01-01
      相关资源
      最近更新 更多