codeigniter, result() vs. result_array()

后端 未结 7 1475
时光取名叫无心
时光取名叫无心 2020-11-28 14:04

I use both result() and result_array().

Usually i like to get my result as array thats why i use result_array() mostly..

But i want

相关标签:
7条回答
  • 2020-11-28 14:32

    result() returns Object type data. . . . result_array() returns Associative Array type data.

    0 讨论(0)
  • 2020-11-28 14:40

    result_array() is faster, result() is easier

    0 讨论(0)
  • 2020-11-28 14:41

    for the sake of reference:

    // $query->result_object() === $query->result()
    // returns:
    Array ( [0] => stdClass Object ( [col_A] => val_1A , [col_B] => val_1B , ... ) 
            [0] => stdClass Object ( [col_A] => val_2A , [col_B] => val_2B , ... ) 
            ...  
          ) 
    
    // $query->result_array() !== $query->result()
    // returns:
    Array ( [0] => Array ( [col_A] => val_1A , [col_B] => val_1B , ... ) 
            [1] => Array ( [col_A] => val_2A , [col_B] => val_2B , ... )
            ... 
          ) 
    

    codeigniter docs for result(), and result_array()

    0 讨论(0)
  • 2020-11-28 14:46

    Returning pure array is slightly faster than returning an array of objects.

    0 讨论(0)
  • 2020-11-28 14:46

    result() is recursive in that it returns an std class object where as result_array() just returns a pure array, so result_array() would be choice regarding performance. There is very little difference in speed though.

    0 讨论(0)
  • 2020-11-28 14:47

    Result has an optional $type parameter which decides what type of result is returned. By default ($type = "object"), it returns an object (result_object()). It can be set to "array", then it will return an array of result, that being equivalent of caling result_array(). The third version accepts a custom class to use as a result object.

    The code from CodeIgniter:

    /**
    * Query result. Acts as a wrapper function for the following functions.
    *
    * @param string $type 'object', 'array' or a custom class name
    * @return array
    */
    public function result($type = 'object')
    {
        if ($type === 'array')
        {
            return $this->result_array();
        }
        elseif ($type === 'object')
        {
            return $this->result_object();
        }
        else
        {
            return $this->custom_result_object($type);
        }
    }
    

    Arrays are technically faster, but they are not objects. It depends where do you want to use the result. Most of the time, arrays are sufficient.

    0 讨论(0)
提交回复
热议问题