PHP 对象、数组间的转换
2016-10-20 17:05
513 查看
/** * PHP 对象、数组间的转换 * * @author flyer0126 * @since 2012/05/03 **/ // 1. 利用(array)和(object),简单处理 $objTemp = (object)array(); $objTemp->a = 1; $objTemp->b = 2; $objTemp->c = 3; $arrTemp = (array)$objTemp; print_r($objTemp); print_r($arrTemp); /** stdClass Object ( [a] => 1 [b] => 2 [c] => 3 ) Array ( [a] => 1 [b] => 2 [c] => 3 ) **/ // PS:简单的(array)和(object)只能处理单层的数据,对于多层的数组和对象转换则无能为力。 // 2. 多维数组与对象间的转换处理 /** * 将对象转换为多维数组 * **/ 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: $init = new stdClass; $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); print_r($array); print_r($object); /** stdClass Object ( [foo] => Test data [bar] => stdClass Object ( [baaz] => Testing [fooz] => stdClass Object ( [baz] => Testing again ) ) [foox] => Just test ) Array ( [foo] => Test data [bar] => Array ( [baaz] => Testing [fooz] => Array ( [baz] => Testing again ) ) [foox] => Just test ) stdClass Object ( [foo] => Test data [bar] => stdClass Object ( [baaz] => Testing [fooz] => stdClass Object ( [baz] => Testing again ) ) [foox] => Just test ) **/
相关文章推荐
- php简单对象与数组的转换函数代码(php多层数组和对象的转换)
- php中对象转换数组与数组转换对象实例
- php简单对象与数组的转换
- PHP中把对象转换为关联数组代码分享
- php 数组 对象 转换
- php数组转换为对象PHP - Convert Array to Object with stdClass
- php多层数组与对象的转换实例代码
- php“对象,数组”互相转换
- php简单对象与数组的转换
- 笔记记录:php将对象转换成为数组
- php多层数组和对象的转换
- php将对象转换成数组
- php 对象转换为数组
- php之对象转换成数组
- 关于PHP在数组对象与JSON数据之间的转换问题(编码问题)
- PHP对象转换为数组函数(递归方法)
- php:php多层数组和对象的转换
- php简单对象与数组的转换函数代码(php多层数组和对象的转换)
- PHP 对象和数组互相转换
- php数组工具类 php数组与对象、字符串的转换实例