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

 更新时间:2014年05月08日 09:12:14   作者:  
PHP和JS通讯通常都用json,但用 json 传过来的数组并不是标准的array,而是 stdClass 类型。那么我们可以参考下面的几个方法进行转换。

方法一:

复制代码 代码如下:

//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; 
}

方法二:

复制代码 代码如下:

$array = json_decode(json_encode(simplexml_load_string($xmlString)),TRUE);

方法三:

复制代码 代码如下:

 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, 性能太差了
可以用以下替换:
 
复制代码 代码如下:
function object2array(&$object) {
             $object =  json_decode( json_encode( $object),true);
             return  $object;
    }

 但是对json的特性,只能是针对utf8的,否则得先转码下。

相关文章

  • Smarty模板简单配置与使用方法示例

    Smarty模板简单配置与使用方法示例

    这篇文章主要介绍了Smarty模板简单配置与使用方法,涉及Smarty模板的基本配置与缓存文件的相关使用技巧,需要的朋友可以参考下
    2016-05-05
  • php用正则表达式匹配中文实例详解

    php用正则表达式匹配中文实例详解

    php中怎么用正则表达式匹配中文,需要注意什么,本文就详解一下这个,还有实例
    2013-11-11
  • 浅谈php中urlencode与rawurlencode的区别

    浅谈php中urlencode与rawurlencode的区别

    下面小编就为大家带来一篇浅谈php中urlencode与rawurlencode的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • php_screw安装使用教程(另一个PHP代码加密实现)

    php_screw安装使用教程(另一个PHP代码加密实现)

    这篇文章主要介绍了php_screw安装使用教程,php_screw是另一个PHP代码加密实现,和Zend的encoder类似,需要的朋友可以参考下
    2014-05-05
  • PHP中使用CURL发送get/post请求上传图片批处理功能

    PHP中使用CURL发送get/post请求上传图片批处理功能

    这篇文章主要介绍了PHP中使用CURL发送get/post请求上传图片批处理 功能,本文通过实例代码给大家介绍的非常详细,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • php将html转为图片的实现方法

    php将html转为图片的实现方法

    下面小编就为大家带来一篇php将html转为图片的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Destoon实现多表查询示例

    Destoon实现多表查询示例

    这篇文章主要介绍了Destoon实现多表查询的方法,非常实用,需要的朋友可以参考下
    2014-08-08
  • 如何使用GDB调试PHP程序

    如何使用GDB调试PHP程序

    GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。同时GDB也具有例如ddd这样的图形化的调试端
    2015-12-12
  • php+iframe实现隐藏无刷新上传文件

    php+iframe实现隐藏无刷新上传文件

    首先ajax不能上传文件,这误导了我有段时间,今晚睡不着就照着说明做了个无刷新上传文件
    2012-02-02
  • Zend Framework实现自定义过滤器的方法

    Zend Framework实现自定义过滤器的方法

    这篇文章主要介绍了Zend Framework实现自定义过滤器的方法,结合实例形式分析了Zend Framework自定义过滤器的简单定义与使用方法,需要的朋友可以参考下
    2016-12-12

最新评论