A-A+

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

2020年12月09日 我爱编程 暂无评论

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;
  11. }

方法二:

$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的,否则得先转码下。

给我留言

Copyright © 四季博客 保留所有权利.   Theme  Ality

用户登录