php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2023-06-13 09:14:28 时间
functionarrayToObject($e){
if(gettype($e)!="array")return;
foreach($eas$k=>$v){
if(gettype($v)=="array"||getType($v)=="object")
$e[$k]=(object)arrayToObject($v);
}
return(object)$e;
}
functionobjectToArray($e){
$e=(array)$e;
foreach($eas$k=>$v){
if(gettype($v)=="resource")return;
if(gettype($v)=="object"||gettype($v)=="array")
$e[$k]=(array)objectToArray($v);
}
return$e;
}
上面的内容来自cnblogsjaiho
php多层数组和对象的转换
多层数组和对象转化的用途很简单,便于处理WebService中多层数组和对象的转化
简单的(array)和(object)只能处理单层的数据,对于多层的数组和对象转换则无能为力。
通过json_decode(json_encode($object)可以将对象一次性转换为数组,但是object中遇到非utf-8编码的非ascii字符则会出现问题,比如gbk的中文,何况json_encode和decode的性能也值得疑虑。
下面上代码:
<?php
functionobjectToArray($d){
if(is_object($d)){
//Getsthepropertiesofthegivenobject
//withget_object_varsfunction
$d=get_object_vars($d);
}
if(is_array($d)){
/*
*Returnarrayconvertedtoobject
*Using__FUNCTION__(Magicconstant)
*forrecursivecall
*/
returnarray_map(__FUNCTION__,$d);
}
else{
//Returnarray
return$d;
}
}
functionarrayToObject($d){
if(is_array($d)){
/*
*Returnarrayconvertedtoobject
*Using__FUNCTION__(Magicconstant)
*forrecursivecall
*/
return(object)array_map(__FUNCTION__,$d);
}
else{
//Returnobject
return$d;
}
}
//Useage:
//CreatenewstdClassObject
$init=newstdClass;
//Addsometestdata
$init->foo="Testdata";
$init->bar=newstdClass;
$init->bar->baaz="Testing";
$init->bar->fooz=newstdClass;
$init->bar->fooz->baz="Testingagain";
$init->foox="Justtest";
//Convertarraytoobjectandthenobjectbacktoarray
$array=objectToArray($init);
$object=arrayToObject($array);
//Printobjectsandarray
print_r($init);
echo"\n";
print_r($array);
echo"\n";
print_r($object);
?>
相关文章
- PHP 应用PDO技术操作数据库
- php获取当天的开始时间和结束时间
- MySQL登录安全之PHP实现(php登录mysql)
- 脚本Linux实现自动化执行PHP脚本(linux自动执行php)
- 使用PHP执行Linux脚本:简单而快速!(php执行linux脚本)
- PHP原生编程实现MySQL数据库连接(php原生连接mysql)
- 提升 PHP 技能,一攻 MySQL 面试!(php面试Mysql)
- 如何在Linux上架设PHP? 25字(linux架设php)
- PHP中使用Redis缓存数据的优势(php使用redis)
- php建立你的网站:使用 Apache、MySQL 和 PHP(httpdmysql)
- 脚本定时执行PHP脚本任务:Linux下的解决方案(linux定时php)
- PHP遍历MySQL:从基本循环到高效操作(php遍历mysql)
- mysql线程技术驱动PHP程序优化(mysql线程php)
- 数据从MySQL中用PHP取得数据(php 获取 mysql)
- 从PHP到MSSQL:实现高效转换(php转换mssql)
- 基于 PHP 和 MSSQL 的连接类开发实战(php mssql连接类)
- Php与Mssql数据库的结合:强大联合力量(php mssql数据库)
- PHP操作MySQL数据库,轻松获取数据。(php访问mysql数据库)
- PHP教程预定义变量
- 基于PHP+Jquery制作的可编辑的表格的代码
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- php数组的一些常见操作汇总
- php去除换行符的方法小结(PHP_EOL变量的使用)
- 如何判断php数组的维度
- 解析php扩展php_curl.dll不加载的解决方法
- php多层数组与对象的转换实例代码
- PHP中实现生成静态文件的方法缓解服务器压力
- Yii快速,安全,专业的PHP框架