php多层数组与对象的转换实例代码


Posted in PHP onAugust 05, 2013

多层数组和对象转化的用途很简单,便于处理WebService中多层数组和对象的转化

简单的(array)和(object)只能处理单层的数据,对于多层的数组和对象转换则无能为力。

通过json_decode(json_encode($object)可以将对象一次性转换为数组,但是object中遇到非utf-8编码的非ascii字符则会出现问题,比如gbk的中文,何况json_encode和decode的性能也值得疑虑。

下面上代码:

<?php
 function objectToArray($d) {
  if (is_object($d)) {
   // Gets the properties of the given object
   // with get_object_vars function
   $d = get_object_vars($d);
  }  if (is_array($d)) {
   /*
   * Return array converted to object
   * Using __FUNCTION__ (Magic constant)
   * for recursive call
   */
   return array_map(__FUNCTION__, $d);
  }
  else {
   // Return array
   return $d;
  }
 }
 function arrayToObject($d) {
  if (is_array($d)) {
   /*
   * Return array converted to object
   * Using __FUNCTION__ (Magic constant)
   * for recursive call
   */
   return (object) array_map(__FUNCTION__, $d);
  }
  else {
   // Return object
   return $d;
  }
 }
 // Useage:
 // Create new stdClass Object  
        $init = new stdClass;
 // Add some test data
 $init->foo = "Test data";
 $init->bar = new stdClass;
 $init->bar->baaz = "Testing";
 $init->bar->fooz = new stdClass;
 $init->bar->fooz->baz = "Testing again";
 $init->foox = "Just test";
 // Convert array to object and then object back to array
 $array = objectToArray($init);
 $object = arrayToObject($array);
 // Print objects and array
 print_r($init);
 echo "\n";
 print_r($array);
 echo "\n";
 print_r($object);
?>

PHP 相关文章推荐
dedecms中常见问题修改方法总结
Mar 21 PHP
将数组写入txt文件 var_export
Apr 21 PHP
判断是否为指定长度内字符串的php函数
Feb 16 PHP
在PHP中实现Javascript的escape()函数代码
Aug 08 PHP
PHP设置一边执行一边输出结果的代码
Sep 30 PHP
memcache一致性hash的php实现方法
Mar 05 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 PHP
Smarty模板常见的简单应用分析
Nov 15 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
Aug 04 PHP
PHP区块查询实现方法分析
May 12 PHP
php实现映射操作实例详解
Oct 02 PHP
注意:php5.4删除了session_unregister函数
Aug 05 #PHP
PHP中fwrite与file_put_contents性能测试代码
Aug 02 #PHP
PHP-Fcgi下PHP的执行时间设置方法
Aug 02 #PHP
基于php中使用excel的简单介绍
Aug 02 #PHP
PHP自动识别字符集并完成转码详解
Aug 02 #PHP
PHP实现根据浏览器跳转不同语言页面代码
Aug 02 #PHP
php实现查询百度google收录情况(示例代码)
Aug 02 #PHP
You might like
用php+mysql一个名片库程序
2006/10/09 PHP
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
合并table相同单元格的jquery插件分享(很精简)
2011/06/20 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
简单实现jQuery级联菜单
2017/01/09 Javascript
树结构之JavaScript
2017/01/24 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
微信小程序动态添加分享数据
2017/06/14 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
js module大战
2019/04/19 Javascript
BootstrapValidator实现表单验证功能
2019/11/08 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
一个基于flask的web应用诞生(1)
2017/04/11 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
python 调整图片亮度的示例
2020/12/03 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
法律专业个人实习自我鉴定
2013/09/23 职场文书
中专生职业生涯规划书范文
2014/01/10 职场文书
冰淇淋店的创业计划书
2014/02/07 职场文书
十八大演讲稿
2014/05/22 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
应收账款管理制度
2015/08/06 职场文书
《社戏》教学反思
2016/02/22 职场文书