php对象和数组的相互转换(不用php还是可以找高级课程)(别人分析重点,还是自己做,还是效果真的很差)一、总结
都是自己实现的功能
算法:
1、先判断类型,gettype
2、类型正确的才要,要么数组,要么对象
3、递归调用
4、强转成对象
二、php对象和数组转换
数组是PHP的灵魂,功能非常强大,但有时面向对象编程也很方便,数组和对象之间的切换也很常见:
1 /** 2 * 数组 转 对象 3 * 4 * @param array $arr 数组 5 * @return object 6 */ 7 function array_to_object($arr) { 8 if (gettype($arr) != 'array') { //1、先判断类型,gettype 9 return; 10 } 11 foreach ($arr as $k => $v) { 12 if (gettype($v) == 'array' || getType($v) == 'object') { //2、类型正确的才要,要么数组,要么对象 13 $arr[$k] = (object)array_to_object($v); //3、递归调用 4、强转成对象 14 } 15 } 16 17 return (object)$arr; 18 } 19 20 /** 21 * 对象 转 数组 22 * 23 * @param object $obj 对象 24 * @return array 25 */ 26 function object_to_array($obj) { 27 $obj = (array)$obj; 28 foreach ($obj as $k => $v) { 29 if (gettype($v) == 'resource') { //1、资源类型的不要 30 return; 31 } 32 if (gettype($v) == 'object' || gettype($v) == 'array') { //2、对象的类型是'object' 33 $obj[$k] = (array)object_to_array($v); 34 } 35 } 36 37 return $obj; 38 }
三、PHP中将对象转换为数组的几种方法:
1 1. 2 //PHP stdClass Object转array 3 function object_array($array) { 4 if(is_object($array)) { 5 $array = (array)$array; 6 } 7 if(is_array($array)) { 8 foreach($array as $key=>$value) { 9 $array[$key] = object_array($value); 10 } 11 } 12 return $array; 13 } 14 2. 15 $array = json_decode(json_encode(simplexml_load_string($xmlString)),TRUE); 16 3. 17 function object2array_pre(&$object) { 18 if (is_object($object)) { 19 $arr = (array)($object); 20 } else { 21 $arr = &$object; 22 } 23 if (is_array($arr)) { 24 foreach($arr as $varName => $varValue){ 25 $arr[$varName] = $this->object2array($varValue); 26 } 27 } 28 return $arr; 29 } 30 4.如果是10W的数据量的话,执行要进1s,结构再复杂些,可以达到3s,性能太差了,可以用以下替换: 31 function object2array(&$object) { 32 $object = json_decode( json_encode( $object),true); 33 return $object; 34 }
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容