PHP stdclass转array的方法

PHP stdclass转array的方法


  id = '11 ';
$a->username = 'me';
print_r($a);
$b=object2array($a);
print_r($b);
function object2array($object) {
             $object1 =  json_decode( json_encode( $object),true);
             return  $object1;
    }
?>
输出结果

stdClass Object
(
    [id] => 11 
    [username] => me
)
Array
(
    [id] => 11 
    [username] => me
)


查看原文:http://newmiracle.cn/?p=486
<think>好的,用户的问题是关于如何将PHP对象换为数组。我需要先回忆一下PHP中处理对象和数组换的相关方法。首先,PHP中有类型换,可以通过将对象强制换为数组来实现。例如使用(array)$object。不过这种方法可能无法处理嵌套对象,需要进一步检查。然后,想到json_encode和json_decode的组合。先将对象为JSON字符串,再解码为数组。这种方法可能更全面,特别是处理嵌套结构时。另外,可能需要手动遍历对象的属性,逐个赋值到数组中。这适用于简单对象,但比较繁琐。还要注意是否有现成的函数,比如get_object_vars,可以获取对象的公有属性。结合这个函数,或许可以递归处理嵌套对象。用户提供的引用中有提到数组换的问题,比如引用1提到数组中的元素是数组,导致换错误。这可能提示用户在处理多层结构时需要注意递归换。引用3提到使用http_build_query处理数组参数,虽然不直接相关,但说明用户可能是在处理HTTP请求时的数据换,可能需要深层换。需要验证这些方法是否适用于所有情况,比如私有属性、受保护属性等。类型换可能不会包含私有属性,而get_object_vars可能只返回公有属性。因此,用户可能需要根据具体情况选择方法。最后,生成相关问题时要围绕对象数组的其他方法、处理嵌套对象、性能考虑等,帮助用户全面了解。</think>在PHP中将对象换为数组有多种方法,以下是三种常用方式及适用场景: ### 方法一:类型强制换 ```php $object = new stdClass(); $object->name = 'John'; $array = (array)$object; // 输出:Array ( [name] => John ) ``` *适用场景*:简单对象换,无法处理嵌套对象[^1] ### 方法二:JSON编码解码 ```php $array = json_decode(json_encode($object), true); ``` *适用场景*:需要深度换嵌套对象和关联数组[^3] ### 方法三:递归属性遍历 ```php function objectToArray($obj) { if (is_object($obj)) { $obj = get_object_vars($obj); } return is_array($obj) ? array_map(__FUNCTION__, $obj) : $obj; } ``` *适用场景*:需要控制换过程的复杂对象[^2] ### 性能对比 $$ T(n) = O(n) \text{(线性时间复杂度)} $$ 其中n表示对象属性的数量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值