PHP对象(object) 与 数组(array) 的转换例子
发布:smiling 来源: PHP粉丝网 添加日期:2018-09-15 23:11:07 浏览: 评论:0
数组是PHP的灵魂,非常强大,但有时候面向对象编程也是挺方便的,数组 与 对象 之间切换也是常有的事:
例子一:
- /**
- * 数组 转 对象
- *
- * @param array $arr 数组
- * @return object
- */
- function array_to_object($arr)
- {
- if (gettype($arr) != 'array')
- {
- return;
- }
- foreach ($arr as $k => $v)
- {
- if (gettype($v) == 'array' || getType($v) == 'object')
- {
- $arr[$k] = (object)array_to_object($v);
- }
- }
- return (object)$arr;
- }
- /**
- * 对象 转 数组
- *
- * @param object $obj 对象
- * @return array
- */
- function object_to_array($obj)
- {
- $obj = (array)$obj;
- foreach ($obj as $k => $v)
- {
- if (gettype($v) == 'resource')
- {
- return;
- }
- if (gettype($v) == 'object' || gettype($v) == 'array')
- {
- $obj[$k] = (array)object_to_array($v);
- }
- }
- //phpfensi.com
- return $obj;
- }
例子2:
- <?php
- class Test{
- public $a;
- public $b;
- public function __construct($a) {
- $this->a = $a;
- }
- }
- //对象转数组,使用get_object_vars返回对象属性组成的数组
- function objectToArray($obj){
- $arr = is_object($obj) ? get_object_vars($obj) : $obj;
- if(is_array($arr)){
- return array_map(__FUNCTION__, $arr);
- }else{
- return $arr;
- }
- }
- //数组转对象
- function arrayToObject($arr){
- if(is_array($arr)){
- return (object) array_map(__FUNCTION__, $arr);
- }else{
- return $arr;
- }
- }
- $test = new Test('test1');
- $test->b = new Test('test2');
- print_r($test);
- $array = objectToArray($test);
- print_r($array);
- $object = arrayToObject($array);
- print_r($object);
Tags: PHP对象 object array
相关文章
- ·PHP对象注入的实例分析(2018-10-15)
- ·深入分析PHP对象注入详解(2018-10-16)
- ·PHP对象递归引用造成内存泄漏分析(2021-04-10)
- ·PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名(2021-08-01)
- ·PHP对象的浅复制与深复制的实例详解(2021-08-16)
- ·php中对象引用和复制实例分析(2021-12-11)
- ·Android中的JSONObject和JSONArray解析json数据(2014-09-05)
- ·PHP中把stdClass Object对象转array的几个方法(2016-08-22)
- ·PHP中把stdClass Object转array的几个方法(2020-12-08)
- ·PHP错误Cannot use object of type stdClass as array in错误的解决办法(2021-02-16)
- ·PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例(2021-05-26)
- ·ArrayAccess接口介绍(2014-01-14)
- ·PHP SPL标准库 SplFixedArray 介绍及和Array的性能测试(2015-05-09)
- ·PHP SPL标准库之SplFixedArray使用实例(2021-05-26)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)