php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2015-01-24信息快讯网
最近用到一些简单的对象与数组的相互转换的问题,写个两个方法如下,需要的朋友可以参考下。
function arrayToObject($e){ if( gettype($e)!='array' ) return; foreach($e as $k=>$v){ if( gettype($v)=='array' || getType($v)=='object' ) $e[$k]=(object)arrayToObject($v); } return (object)$e; } function objectToArray($e){ $e=(array)$e; foreach($e as $k=>$v){ if( gettype($v)=='resource' ) return; if( gettype($v)=='object' || gettype($v)=='array' ) $e[$k]=(array)objectToArray($v); } return $e; }
上面的内容来自 cnblogs jaiho
php多层数组和对象的转换
多层数组和对象转化的用途很简单,便于处理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多层数组与对象的转换实例代码
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
PHP中数组合并的两种方法及区别介绍
PHP合并两个数组的两种方式的异同
PHP 面向对象详解
php中将汉字转换成拼音的函数代码
php比较多维数组中值的大小排序实现代码
PHP输出数组中重名的元素的几种处理方法
php日期转时间戳,指定日期转换成时间戳
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
php面向对象 字段的声明与使用
PHP对象Object的概念 介绍
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
几个有用的php字符串过滤,转换函数代码
php的list()的一步操作给一组变量进行赋值的使用
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
php 数组的一个悲剧?
php 归并排序 数组交集
php在多维数组中根据键名快速查询其父键以及父键值的代码
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
对text数据类型不支持代码页转换 从: 1252 到: 936
PHP遍历二维数组的代码
php中显示数组与对象的实现代码
zend api扩展的php对象的autoload工具
php 面向对象的一个例子
javascript,php获取函数参数对象的代码
php短域名转换为实际域名函数
php foreach 参数强制类型转换的问题
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
php表单转换textarea换行符的方法