-
php中对象转换数组与数组转换对象实例
本文章来介绍了在php中如何把数组转换成对象或是把对象转换成数组对象,用stdClass转换数组为对象,代码如下:
- $arr = array();
- $arr['a'] = 1;
- $arr['b'] = 2;
- $arr['c'] = 3;
- $arr = array();
- $arr['a'] = 1;
- $arr['b'] = 2;
- $arr['c'] = 3;
用stdClass转换后,代码如下:
- $object = new StdClass;
- $object->a = 1;
- $object->b = 2;
- $object->c = 3;
- $object = new StdClass;
- $object->a = 1;
- $object->b = 2;
- $object->c = 3;
stdClass是PHP的一个基类,所有的类几乎都继承这个类,所以任何时候都可以被new,可以让这个变量成为一个object,同时,这个基类又有一个特殊的地方,就是没有方法.
我应用的地方是simplexml中的simplexml_load_string()上,因为返回的全是对象,如果提取数据比较麻烦,所以应用了下面的函数,代码如下:
- function object_to_array($obj)
- {
- $_arr = is_object($obj) ? get_object_vars($obj) : $obj;
- foreach ($_arr as $key => $val)
- {
- $val = (is_array($val) || is_object($val)) ? object_to_array($val) : $val;
- $arr[$key] = $val;
- }
- return $arr;
- }
数组转换成对象,代码如下:
- <?php
- $array = array(1 => php,
- 2 => java,
- 3 => c );
- $arrayobject = new ArrayObject($array);
- var_dump($arrayobject);
- ?>
- //运行结果如下:
- //object(ArrayObject)#1 (1) { ["storage":"ArrayObject":private]=> array(3) { [1]=> string(3) "php" [2]=> string(4) "java" [3]=> string(3) "c " }}
一个类:ArrayObject,可以直接将数组转化为对象,代码如下:
- $array = array('1' => 'one',
- '2' => 'two',
- '3' => 'three');
- $arrayobject = new ArrayObject($array);
- var_dump($arrayobject);
- $array = array('1' => 'one',
- '2' => 'two',
- '3' => 'three');
- $arrayobject = new ArrayObject($array);
- var_dump($arrayobject);
- /*
- 结果如下:
- Php代码
- object(ArrayObject)#1 (3) {
- [1]=>
- string(3) "one"
- [2]=>
- string(3) "two"
- [3]=>
- string(5) "three"
- } */
出处:http://www.phpfensi.com/php/20140801/4108.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式