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

来源:脚本之家  责任编辑:小易  

方法一:

复制代码 代码如下:
//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的,否则得先转码下。

您可能感兴趣的文章:


  • 本文相关:
  • php通过array_shift()函数移除数组第一个元素的方法
  • php数组函数序列之array_unique() - 去除数组中重复的元素值
  • php中unset,array_splice删除数组中元素的区别
  • php数组函数序列之array_keys() - 获取数组键名
  • php array_flip() 删除数组重复元素
  • php array_filter除去数组中的空字符元素
  • php使用array_rand()函数从数组中随机选择一个或多个元素
  • php数组函数序列之array_key_exists() - 查找数组键名是否存在
  • php数组函数序列之array_pop() - 删除数组中的最后一个元素
  • php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
  • php array_shift()用法实例分析
  • php并发加锁示例
  • php微信分享到朋友圈、qq、朋友、微博
  • 遍历指定目录,并存储目录内所有文件属性信息的php代码
  • 基于php函数的操作方法
  • thinkphp3.2中lite文件替换框架入口文件或应用入口文件的方法
  • 一个自定义位数的php多用户计数器代码
  • php 文件上传实例代码
  • smarty模板引擎之内建函数用法
  • 如何利用预加载优化laravel model查询详解
  • php使用gifencoder类生成gif动态滚动字幕
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved