Php 在CodeIgniter中将阵列转换为stdClass

Php 在CodeIgniter中将阵列转换为stdClass,php,codeigniter,Php,Codeigniter,我使用下面的函数从CodeIgniter中的两个表返回数据 public function test() { $this->db->select('*'); $this->db->from('WHOUSE1.DLY_BWR_DLY_PERFORMANCE'); $this->db->join('WHOUSE1.DATE_DIM', 'WHOUSE1.DATE_DIM.DATE_KEY = WHOUSE1.DLY_BWR_DLY_PERF

我使用下面的函数从CodeIgniter中的两个表返回数据

public function test()
{
    $this->db->select('*');
    $this->db->from('WHOUSE1.DLY_BWR_DLY_PERFORMANCE');
    $this->db->join('WHOUSE1.DATE_DIM', 'WHOUSE1.DATE_DIM.DATE_KEY = WHOUSE1.DLY_BWR_DLY_PERFORMANCE.BDP_DATE');
    $query = $this->db->get();
    return $query->result_array();
}
使用var\u dump,我得到以下结果

array (size=3226)
0 => 
array (size=121)
  'BDP_ID' => string '945149' (length=6)
  'BDP_COST_CENTRE_NUMBER' => string '1376' (length=4)
  'BDP_DATE' => string '20040807' (length=8)
  'BDP_DAY_CODE' => string '6' (length=1)
  'BDP_TAKE' => string '4923.78' (length=7)
  'BDP_PAYOUT' => string '3779.22' (length=7)
  'BDP_ACTUAL_SLIPPAGE' => string '636' (length=3)

1 => 
array (size=121)
  'BDP_ID' => string '945150' (length=6)
  'BDP_COST_CENTRE_NUMBER' => string '1376' (length=4)
  'BDP_DATE' => string '20040809' (length=8)
  'BDP_DAY_CODE' => string '1' (length=1)
  'BDP_TAKE' => string '2848.3' (length=6)
  'BDP_PAYOUT' => string '4190.34' (length=7)
  'BDP_ACTUAL_SLIPPAGE' => string '280' (length=3)
但我想得到的是这个

  array (size=3226)
  0 => 
  object(stdClass)[27]
  'BDP_ID' => string '945149' (length=6)
  'BDP_COST_CENTRE_NUMBER' => string '1376' (length=4)
  'BDP_DATE' => string '20040807' (length=8)
  'BDP_DAY_CODE' => string '6' (length=1)
  'BDP_TAKE' => string '4923.78' (length=7)
  'BDP_PAYOUT' => string '3779.22' (length=7)
  'BDP_ACTUAL_SLIPPAGE' => string '636' (length=3)

  1 => 
  object(stdClass)[29]
  'BDP_ID' => string '945150' (length=6)
  'BDP_COST_CENTRE_NUMBER' => string '1376' (length=4)
  'BDP_DATE' => string '20040809' (length=8)
  'BDP_DAY_CODE' => string '1' (length=1)
  'BDP_TAKE' => string '2848.3' (length=6)
  'BDP_PAYOUT' => string '4190.34' (length=7)
  'BDP_ACTUAL_SLIPPAGE' => string '280' (length=3)
我似乎找不到将数组转换为对象(stdClass)的方法。如果我是CodeIgniter的新手,将非常感谢您的帮助。

使用

return $query->result();
此函数将查询结果作为对象数组返回,或在失败时作为空数组返回。通常,您将在foreach循环中使用此选项,如下所示:

$query = $this->db->query("YOUR QUERY");

foreach ($query->result() as $row)
{
   echo $row->title;
   echo $row->name;
   echo $row->body;
}
编辑:

如果您只想打印,可以使用
var\u dump()
print\u r()

如果需要所有属性及其值的数组,请使用
get\u object\u vars()


根据与Codeigniter I相同的文件,详情如下:

result_array()

This function returns the query result as a pure array, or an empty array when no 
result `is produced. Typically you'll use this in a foreach loop, like this:`

result()

This function returns the query result as an array of objects, or an empty array 
on failure.
您应该以这种方式返回数据

return $query->result();

数组到stdClass可以通过这种方式在php中完成

stdClass:: __set_state(array());
或者一种更好的方式

$a = (object) array();

在模型中使用此代码(更改表名并选择不同的文件)


当我使用$query->result()时,函数失败;还有什么我能做的吗?谢谢。我得到一个空白屏幕,即使我的Apache环境设置为显示所有错误,也不会显示任何错误。嗨,John,我的函数使用$query->result()失败;是否有办法重新编写函数test(),以免失败。我只使用result_array();为了提取数据以便解释我想看什么,公共函数test(){$this->db->join('WHOUSE1.DATE\u DIM','WHOUSE1.DATE\u DIM.DATE\u KEY=WHOUSE1.DLY\u BWR\u DLY\u PERFORMANCE.BDP\u DATE');返回$this->db->get('WHOUSE1.DLY\u BWR\u DLY\u PERFORMANCE')->result()}好吧,还是一样的。但我不明白你为什么在帮不上忙的时候投票否决了我。无意冒犯。因为答案在codeigniter手册中,尽管我没有对你的问题投反对票:(这回答了你的问题吗?
stdClass:: __set_state(array());
$a = (object) array();
        $this->db->select('DISTINCT(subcategory)');
        $this->db->from('tbl_property');  
        $this->db->where('status','1');                          
        $data           = $this->db->get()->result(); 
        $sub_id         = array();
        foreach ($data as $row)
        {
            array_push($sub_id,$row->subcategory);
        }
        $this->db->from('tbl_subcategory');  
        $this->db->where_in('id',$sub_id);                          
        $data1          = $this->db->get()->result();
        return $data1;