当前位置:首页 > PHP教程 > php高级应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2020-12-08 16:36:35 浏览: 评论:0 

PHP和JS通讯通常都用json,但用 json 传过来的数组并不是标准的array,而是 stdClass 类型。那么我们可以参考下面的几个方法进行转换。

方法一:

  1. //PHP stdClass Object转array  
  2. function object_array($array) {  
  3.     if(is_object($array)) {  
  4.         $array = (array)$array;  
  5.      } if(is_array($array)) {  
  6.          foreach($array as $key=>$value) {  
  7.              $array[$key] = object_array($value);  
  8.              }  
  9.      }  
  10.      return $array;  

方法二:

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

方法三:

  1. function object2array_pre(&$object) { 
  2.        if (is_object($object)) { 
  3.            $arr = (array)($object); 
  4.        } else { 
  5.            $arr = &$object
  6.        } 
  7.        if (is_array($arr)) { 
  8.            foreach($arr as $varName => $varValue){ 
  9.                $arr[$varName] = $this->object2array($varValue); 
  10.            } 
  11.        } 
  12.        return $arr
  13.    } 

如果是10W的数据量的话,执行要进1s,结构再复杂些,可以达到3s, 性能太差了,可以用以下替换:

  1. function object2array(&$object) { 
  2.              $object =  json_decode( json_encode( $object),true); 
  3.              return  $object
  4.     } 

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

Tags: stdClass Object

分享到: