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换行符的方法