找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 989|回复: 0
打印 上一主题 下一主题

PHP中把stdClass Object转array的几个方法

[复制链接]

2617

主题

2617

帖子

7789

积分

论坛元老

Rank: 8Rank: 8

积分
7789
跳转到指定楼层
楼主
发表于 2018-2-14 05:58:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            方法一:
[U]复制代码[/U] 代码如下:
//PHP stdClass Object转array  
function object_array($array) {  
    if(is_object($array)) {  
        $array = (array)$array;  
     } if(is_array($array)) {  
         foreach($array as $key=>$value) {  
             $array[$key] = object_array($value);  
             }  
     }  
     return $array;  
}
方法二:
[U]复制代码[/U] 代码如下:
$array = json_decode(json_encode(simplexml_load_string($xmlString)),TRUE);
方法三:
[U]复制代码[/U] 代码如下:
function object2array_pre(&$object) {
        if (is_object($object)) {
            $arr = (array)($object);
        } else {
            $arr = &$object;
        }
        if (is_array($arr)) {
            foreach($arr as $varName => $varValue){
                $arr[$varName] = $this->object2array($varValue);
            }
        }
        return $arr;
    }
如果是10W的数据量的话,执行要进1s,结构再复杂些,可以达到3s, 性能太差了
可以用以下替换:
[U]复制代码[/U] 代码如下:function object2array(&$object) {
             $object =  json_decode( json_encode( $object),true);
             return  $object;
    }
但是对json的特性,只能是针对utf8的,否则得先转码下。
            
            
您可能感兴趣的文章:
  • php面向对象的方法重载两种版本比较
  • PHP 面向对象 final类与final方法
  • PHP中遍历stdclass object的实现代码
  • PHP5中新增stdClass 内部保留类
  • PHP面向对象之旅:深入理解static变量与方法
  • 理解PHP中的stdClass类
  • 从PHP的源码中深入了解stdClass类
  • php中stdClass的用法分析
  • PHP标准类(stdclass)用法示例
  • PHP中STDCLASS用法实例分析
  • PHP使用new StdClass()创建空对象的方法分析
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端