如何在CodeIgniter中转换result_object的数据类型?附对象数组示例
在CodeIgniter中转换result_object数据类型的方法
嘿,针对你拿到的这种stdClass对象数组(也就是CodeIgniter里result_object()返回的结果),我整理了几种实用的转换方法,帮你轻松切换数据类型:
1. 直接获取数组格式(最省心的方式)
如果还没执行查询,或者可以重新发起查询,直接用CodeIgniter自带的方法跳过对象,直接拿数组:
// 用 result_array() 替代 result_object(),直接得到关联数组 $query = $this->db->get('your_table'); $array_data = $query->result_array();
要是只查单条记录,就用row_array()代替row():
$single_row_array = $query->row_array();
2. 把已有的对象数组转成数组
要是你已经拿到了result_object()的结果,想把这些stdClass对象批量转成数组,用array_map加get_object_vars就能一行搞定:
// $object_array 是你现有的result_object返回的数组 $array_data = array_map(fn($obj) => get_object_vars($obj), $object_array);
要是你需要在转换时对字段做额外处理(比如格式化日期、修改字段名),用foreach循环更灵活:
$array_data = []; foreach ($object_array as $obj) { // 这里可以加自定义处理,比如把cash_date转成可读格式 $converted_item = (array)$obj; // 强制类型转换,把对象转数组 $array_data[] = $converted_item; }
3. 单个对象转数组
如果只是单条stdClass对象,两种简单方式:
// 方式1:强制类型转换 $single_array = (array)$single_obj; // 方式2:用get_object_vars获取对象属性数组 $single_array = get_object_vars($single_obj);
这些方法都能帮你快速把数据库返回的对象转换成数组,适配你后续的数组操作需求~
内容的提问来源于stack exchange,提问作者san shalihin
相关产品推荐
相关产品推荐

