新闻中心
php返回的是对象怎么转化成数组_php对象转数组技巧【教程】
PHP中将对象转数组有五种方法:一、强制类型转换适用于stdClass;二、json_encode/json_decode支持嵌套;三、get_object_vars仅获取公共属性;四、反射递归处理私有/受保护属性;五、Lar*el中用Collection::make()->toArray()。

如果您在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
一键生成动漫二次元头像和插图
317
查看详情
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对象数组转置为键值对列表的实用指南


2025-12-15
浏览次数:次
返回列表