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

方法一:

复制代码 代码如下:

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

时间: 2024-10-03 11:19:33

PHP中把stdClass Object转array的几个方法_php实例的相关文章

php正则去除网页中所有的html,js,css,注释的实现方法_php实例

如下所示: $search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript "'<style[^>]*?>.*?</style>'si", // 去掉 css "'<[/!]*?[^<>]*?>'si", // 去掉 HTML 标记 "'<!--[/!]*?[^<>

destoon实现会员商铺中指定会员或会员组投放广告的方法_php实例

本文实例讲述了destoon实现会员商铺中指定会员或会员组投放广告的方法,对destoon开发来说有很好的实用价值.分享给大家供大家参考,具体方法如下: 一.指定会员属性来投放广告 如果想在同一个位置显示广告的,可以在模板文件夹template\default\homepage下的 side.htm 文件里增加: {if $COM[vip]} {else} 显示的AD(可以调用网站广告管理里的调用方式) {/if} 详解:以上代码的意思是,VIP不显示广告,其他会员则显示,可以很好的体现出VIP

codeigniter中实现一次性加载多个view的方法_php实例

本文实例讲述了codeigniter中实现一次性加载多个view的方法.分享给大家供大家参考.具体如下: function somecontrollerfunction() { $data['pagetitle'] = "Welcome to jb51.net"; $this->load->view('pageheader', $data); $this->load->view('pagenav'); $this->load->view('pagec

PHP中定义数组常量(array常量)的方法_php技巧

在PHP中,我们不能用const直接定义数组常量,但是const可以定义字符串常量,结合eval()函数使字符串常量能执行.所以,我们可以用定义字符串常量的方式来返回一个数组常量.下面就是我们来见证奇迹的时刻! 复制代码 代码如下: <?php class Test {  const MY_ARR="return array(\"a\",\"b\",\"c\",\"d\");";  public fu

PHP中把对象数组转换成普通数组的方法_php实例

最近在用ThinkPHP开发一个京东服务市场的应用,然而京东服务市场接口返回的数据是个对象数组.然而需要一个个属性取出来放到数组里面然后再利用ThinkPHP的addAll或者add方法写入数据库.然而每次返回的字段有几十个,每次这么拼接都要崩溃了.果然还是那句话,当你感到无法忍受的时候你就会想办法改变.于是想了下,如果有个函数传个对象数组进去可以自动转成普通数组就好了.因而万能的互联网搜索又来了.百度了一通...果然有前辈已经处理过了,在此记录一下. 复制代码 代码如下: /** * [std

WordPress中对访客评论功能的一些优化方法_php实例

前几天见到某 Blog (忘记名字和网址了) 有一个相当实用的评论功能. 访客留言之后资料输入框会被隐藏起来, 如同登录了一般. 访客可以选择修改相关资料再进行评论. 给予访客很好的用户体验. 今天我将这个功能移植到了自己的主题上, 制作不难, 分享一下吧. 需求 细心的朋友可能已经注意到了: 当在某个 WordPress 发表评论后再次访问该 Blog, 资料就不需要再次填写, 因为它们都已经在资料输入框里面. 但没评论过的或者清除了 Cookie 之后, 资料输入框将空空如也. 1. 当访客

PHP中使用memcache存储session的三种配置方法_php实例

1.直接修改php.ini配置文件 复制代码 代码如下: session.save_handler = memcache //设置session的储存方式为memcache memcache.hash_strategy = "consistent"//设置memcache的hash算法 session.save_path = "tcp://127.0.0.100:11211" //设置session储存的位置,多台memcache用逗号隔开,例如:tcp://127

Codeigniter中禁止A Database Error Occurred错误提示的方法_php实例

在默认的情况下,CodeIgniter会显示所有的PHP错误.但是当你开发程序结束时,你可能想要改变这个情况.你会发现在index.php文件顶端有这个函数error_reporting(),通过它可以进行对错误的设置. 即使你关闭了错误报告,当有错误发生时,错误记录也不会停止.所以,修改php.ini不能达到我们想要的效果. 下面是解决办法: 1. Codeigniter中禁止A Database Error Occurred错误提示 在CodeIgniter 用户指南中说到,设置 ENVIR

PHP的Laravel框架中使用消息队列queue及异步队列的方法_php实例

queue配置 首先说明一下我之前的项目中如何使用queue的. 我们现在的项目都是用的symfony,老一点的项目用的symfony1.4,新一点的项目用的都是symfony2.symfony用起来整体感觉还是很爽的,尤其symfony2,整体上来讲使用了很多java里面框架的设计思想.但是他不支持queue.在symfony,我们使用queue也经历了几个过程.最开始使用张堰同学的httpsqs.这个简单使用,但是存在单点.毕竟我们的项目还是正式对外服务的,所以我们研究了Apache旗下的开