I use both result()
and result_array()
.
Usually I like to get my result as array that's why I use result_array()
mostly.
But I want to know which is the faster approach that I should follow. Which one of them is more efficient to use in regards to performance?
Here is the example I am talking about in CodeIgniter queries:
$query = $this->db->get();
$result = $query->result_array();
or is this should be the better approach?
$query = $this->db->get();
$result = $query->result();
Also, right now, I am using result_array()
in my generic model.
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.