新闻中心

php返回的是对象怎么转化成数组_php对象转数组技巧【教程】

2025-12-15
浏览次数:
返回列表
PHP中将对象转数组有五种方法:一、强制类型转换适用于stdClass;二、json_encode/json_decode支持嵌套;三、get_object_vars仅获取公共属性;四、反射递归处理私有/受保护属性;五、Lar*el中用Collection::make()->toArray()。

php返回的是对象怎么转化成数组_php对象转数组技巧【教程】

如果您在PHP开发中接收到一个对象,但后续操作需要以数组形式处理,则必须将该对象转换为数组。以下是多种可行的转换方法:

一、使用强制类型转换(适用于标准对象)

对非私有属性的stdClass对象或简单公共属性对象,可直接使用(array)强制类型转换,该方式会将对象的公共属性及其值映射为关联数组键值对。

1、声明一个stdClass对象并赋值:
$obj = new stdClass();
$obj->name = "张三";
$obj->age = 25;

2、执行强制类型转换:
$arr = (array)$obj;

3、验证结果:
var_dump($arr); // 输出:array(2) { ["name"]=> string(6) "张三" ["age"]=> int(25) }

二、使用json_encode与json_decode组合(支持嵌套对象)

该方法先将对象序列化为JSON字符串,再反序列化为关联数组,能有效处理多层嵌套对象及部分不可见属性问题,但要求对象属性可被JSON编码。

1、准备待转换对象:
$obj = new stdClass();
$obj->user = new stdClass();
$obj->user->id = 1001;

2、执行双重转换:
$arr = json_decode(json_encode($obj), true);

3、确认输出为数组:
var_dump(is_array($arr)); // 输出:bool(true)

三、使用get_object_vars函数(仅限公共属性)

get_object_vars()函数返回对象中所有可访问的公共属性组成的关联数组,不包含私有、受保护属性以及动态添加的不可枚举属性。

1、定义一个含公共属性的类:
class Person { public $name = "李四"; public $city = "北京"; }

Waifulabs Waifulabs

一键生成动漫二次元头像和插图

Waifulabs 317 查看详情 Waifulabs

2、实例化并调用函数:
$p = new Person();
$arr = get_object_vars($p);

3、检查结果:
print_r($arr); // Array ( [name] => 李四 [city] => 北京 )

四、递归遍历对象属性(支持私有/受保护属性)

通过反射机制获取对象所有属性(包括private和protected),并递归处理嵌套对象,确保完整还原结构。此方法适用于复杂对象且需保留全部字段的场景。

1、定义反射转换函数:
function object_to_array($obj) {
  $arr = [];
  $reflection = new ReflectionObject($obj);
  $properties = $reflection->getProperties();
  foreach ($properties as $prop) {
    $prop->setAccessible(true);
    $value = $prop->getValue($obj);
    if (is_object($value)) {
      $arr[$prop->getName()] = object_to_array($value);
    } else {
      $arr[$prop->getName()] = $value;
    }
  }
  return $arr;
}

2、创建测试对象:
$obj = new class { private $token = "abc123"; protected $role = "admin"; public $status = "active"; };

3、调用函数转换:
$result = object_to_array($obj);

五、使用Lar*el集合辅助(仅限Lar*el项目)

若项目基于Lar*el框架,可借助Collection类的toArray()方法,自动处理Eloquent模型及普通对象,支持递归展开且兼容日期、集合等特殊类型。

1、引入Illuminate\Support\Collection:
use Illuminate\Support\Collection;

2、构造对象并包装为集合:
$obj = (object)['data' => (object)['code' => 200]];
$collection = Collection::make($obj);

3、调用转换方法:
$arr = $collection->toArray();

以上就是php返回的是对象怎么转化成数组_php对象转数组技巧【教程】的详细内容,更多请关注其它相关文章!


# 转化成  # 怎么建设好的网站账号  # 纹身营销推广策略  # 延安seo矩阵哪个便宜  # 土豆seo  # 百度关键词排名来回波动  # 怎么做推广营销策划工作  # 兰州模板网站seo系统  # 济南网站seo优化方案  # 重庆seo经验分享  # 青羊区做seo服务  # 二位  # 转换成  # 仅限  # php  # 键值  # 多维  # 适用于  # 转数  # 的是  # 递归  # 键值对  # php开发  # access  # 编码  # json  # js  # laravel 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Bilibili动漫最新防封地址发布-Bilibili动漫2025年最稳正版入口推荐  J*aScript中赋值与自增运算符的复杂交互与执行机制  优化 Python 函数中的条件逻辑:解决 if-else 嵌套与参数选择问题  《GTA6》开发画面疑似泄露!这次可不是AI了  mysql密码锁定怎么解锁_mysql密码锁定解锁后修改密码步骤  sublime如何配置Python开发环境_将sublime打造成轻量级Python IDE  怎么在浏览器上运行HTML文件_浏览器运行HTML文件技巧【技巧】  如何有效阻止外部脚本意外修改内联样式的高度属性  C++的std::forward_list怎么用_C++ STL中单向链表容器的特点与应用  MongoDB Aggregation:在嵌套对象数组中精确匹配ObjectId  win11如何卸载Windows更新补丁 Win11解决更新导致系统不稳定的问题【修复】  如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略  京东单号查询入口_京东快递订单追踪入口  2025俄罗斯Yandex最新入口 官方网站地址及浏览器下载指南  windows10怎么关闭系统提示音_windows10彻底静音设置方法  抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站  Win10双系统截图高效法 截屏快捷键速记【技巧】  uc浏览器网页版入口 uc浏览器网页版最新网址  Python多版本共存与虚拟环境管理深度指南  特斯拉自动驾驶房车计划曝光 原型车将于2027年亮相  快手官方唯一登录入口 谨防山寨钓鱼网站  Steam官网入口直达 Steam注册及登录步骤  C++如何检测键盘输入_C++ _kbhit与_getch函数非阻塞输入  纯CSS与HTML网格布局的HTML精简策略:SVG与JS方案解析  如何解决电商平台定制报价请求的“黑洞”问题,SprykerQuoteRequest模块助你提升客户体验与销售效率  抖音商城签到领现金是真的吗_抖音商城签到奖励与提现说明  QQ邮箱网页版登录入口 QQ邮箱官方在线使用平台  QQ邮箱在线使用入口 QQ邮箱个人账号网页版登录  微信网页版扫码登录入口 微信网页版二维码登录入口  《北京人工智能产业白皮书(2025)》发布:全年核心产值预计突破 4500 亿元  Yandex免登录网页版地址 Yandex搜索引擎官方访问入口  中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】  《马克思佩恩3》早期版本曝光 UI设计曾多次调整!  如何将一个大型PHP应用拆分为多个Composer包_微服务与模块化架构的Composer实践  AO3中文官网链接_AO3网页版稳定镜像站  AO3网页版合集入口 Archive of Our Own同人作品浏览指南  C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用  Python大型XML文件高效流式解析教程  Pandas DataFrame 高效批量赋值:告别循环与笛卡尔积误区  葱吃多了会怎样 葱吃多了会伤胃吗  J*aScript井字棋(Tic-Tac-Toe)核心交互逻辑实现教程  动漫花园资源网使用步骤_动漫花园资源网下载流程  12306选座怎么选到临时改签座_12306改签选座策略与步骤  Win11怎么关闭触摸屏_Windows 11禁用HID符合标准触摸屏  Android Studio计算器C键功能异常排查与修复教程  qq游戏网页版直接玩_qq游戏免下载快速入口  美团外卖商家服务中心入口 美团商家版官网入口  漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站  必由学官网首页入口 必由学教师网页版登录指南  将JSON对象数组转置为键值对列表的实用指南 

搜索