php:php多层数组和对象的转换
来源:互联网 发布:优化目标函数 编辑:程序博客网 时间:2024/05/22 07:49
多层数组和对象转化的用途很简单,便于处理WebService中多层数组和对象的转化
简单的(array)和(object)只能处理单层的数据,对于多层的数组和对象转换则无能为力。
通过json_decode(json_encode($object)可以将对象一次性转换为数组,但是object中遇到非utf-8编码的非ascii字符则会出现问题,比如gbk的中文,何况json_encode和decode的性能也值得疑虑。
下面上代码:
<?phpfunction 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 arrayreturn $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 objectreturn $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 arrayprint_r($init);echo "\n";print_r($array);echo "\n";print_r($object);?>
原文地址:http://www.54xue.com/w/22/n-30522.html
- php多层数组和对象的转换
- php:php多层数组和对象的转换
- PHP数组和对象的相互转换
- PHP对象和数组的相互转换
- php数组和对象转换
- php 数组 对象 转换
- PHP 对象-数组转换
- php简单对象与数组的转换
- PHP 对象转换为对应的数组
- php对象、数组间的转换
- php简单对象与数组的转换
- PHP 对象、数组间的转换
- php 对象转换为数组
- PHP对象与数组转换
- JS中json字符串和json对象之间的转换,PHP中json字符串和php数组之间的转换
- PHP数组和Json之间的转换
- PHP数组和Json之间的转换
- PHP数组和Json之间的转换
- oracle执行计划
- 创业者2012必看十大文章(6)
- Asp.Net Web控件 (二)(无间隙滚动控件)
- Unity3d中英文API
- Log4J的配置文件详解
- php:php多层数组和对象的转换
- C#开发Windows Service程序
- 创业者2012必看十大文章(7)
- 虚拟机ubuntu11.10与win7共享文件夹(samba服务模式)
- 创业者2012必看十大文章(8)
- 网站学习备忘006——Session,页面计数器
- wchar_t与char相互转换(跨平台)
- 思维导图
- FFMpeg框架代码阅读