php中对象转换数组与数组转换对象实例

用stdClass转换数组为对象                                                                                  

Php代码

 代码如下 复制代码

$arr = array();                                           
$arr['a'] = 1;                                              
$arr['b'] = 2;                                              
$arr['c'] = 3;                                              

$arr = array();                                          
$arr['a'] = 1;                                             
$arr['b'] = 2;                                             
$arr['c'] = 3;                                             

用stdClass转换后:

Php代码

 代码如下 复制代码

$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,可以直接将数组转化为对象                                             

Php代码

 代码如下 复制代码
$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"                                      
}              

                                                  

时间: 2024-09-26 23:22:32

php中对象转换数组与数组转换对象实例的相关文章

PHP中把对象数组转换成普通数组的方法_php实例

最近在用ThinkPHP开发一个京东服务市场的应用,然而京东服务市场接口返回的数据是个对象数组.然而需要一个个属性取出来放到数组里面然后再利用ThinkPHP的addAll或者add方法写入数据库.然而每次返回的字段有几十个,每次这么拼接都要崩溃了.果然还是那句话,当你感到无法忍受的时候你就会想办法改变.于是想了下,如果有个函数传个对象数组进去可以自动转成普通数组就好了.因而万能的互联网搜索又来了.百度了一通...果然有前辈已经处理过了,在此记录一下. 复制代码 代码如下: /** * [std

JAVA中list,set,数组之间的转换详解_java

JAVA的list,set,数组之间的转换,主要是使用Apache Jakarta Commons Collections,具体的方法如下:import org.apache.commons.collections.CollectionUtils;    String[] strArray = {"aaa", "bbb", "ccc"};    List strList = new ArrayList();    Set strSet = new

PHP数组与对象之间使用递归实现转换的方法

  本文实例讲述了PHP数组与对象之间使用递归实现转换的方法.分享给大家供大家参考.具体实现方法如下: 这里涉及一些简单的对象与数组的相互转换的问题,采用递归写了两个方法如下: ? 1 2 3 4 5 6 7 8function arrayToObject($e){ if( gettype($e)!='array' ) return; foreach($e as $k=>$v){ if( gettype($v)=='array' || getType($v)=='object' ) $e[$k]

c++-MFC 中 CString转换成char[]数组

问题描述 MFC 中 CString转换成char[]数组 环境为vs2010 CString szText; char a[1024]; edit1.GetWindowText(szText);//获取edit1编辑框的文本 怎么将CString类 szText 转换为char[]数组的内容? memcpy(a,szText,1024);只能读取文本的第一个字符 解决方案 MFC不建议用char类型了,你用TCHAR,宽字符的处理速度还快些 解决方案二: memcpy(a,(const cha

PHP数组与对象之间使用递归实现转换的方法_php技巧

本文实例讲述了PHP数组与对象之间使用递归实现转换的方法.分享给大家供大家参考.具体实现方法如下: 这里涉及一些简单的对象与数组的相互转换的问题,采用递归写了两个方法如下: function arrayToObject($e){ if( gettype($e)!='array' ) return; foreach($e as $k=>$v){ if( gettype($v)=='array' || getType($v)=='object' ) $e[$k]=(object)arrayToObj

PHP对象(object) 与 数组(array) 的转换例子

数组是PHP的灵魂,非常强大,但有时候面向对象编程也是挺方便的,数组 与 对象 之间切换也是常有的事: 例子一  代码如下 复制代码 /**  * 数组 转 对象  *  * @param array $arr 数组  * @return object  */ function array_to_object($arr) {  if (gettype($arr) != 'array')  {   return;  }  foreach ($arr as $k => $v)  {   if (ge

如何将VB.NET 字符串转换成字节数组

问题描述 e.gDimsAsString="123456"要转换成DimbAsByte()=&H12,msg(1)=&H34,msg(2)=&H56可以怎样做?String長度不是固定的,谢谢DimsAsString="123456"DimbAsByte()=Encoding.ASCII.GetBytes(s)這方法出来的是msg(0)=49,msg(1)=50.........是不行的 解决方案 解决方案二:SubString2位一个长度然

jquery $.grep map数组过滤与转换

jquery $.grep map数组过滤与转换 $.grep(array, callback, [invert]) 过滤数组[常用] 解释: 使用过滤函数过滤数组元素.此函数至少传递两个参数(第三个参数为true或false,对过滤函数返回值取反,个人觉得用处不大): 待过滤数组和过滤函数. 过滤函数必须返回 true 以保留元素或 false 以删除元素. 另外,过滤函数还可以是可设置为一个字条串(个人不推荐,欲了解自行查阅); $.grep(_mozi,function(val,key){

如何读取Excel文件并转换成二进制数组?

问题描述 pb中可以把Excel文件转换成二进制数组进行读取,我要用C#调用pb的webservice将Excel数据导入到数据库中.

PHP编码转换函数 自动转换字符集支持数组转换_php技巧

复制代码 代码如下: // 自动转换字符集 支持数组转换 function auto_charset($fContents, $from='gbk', $to='utf-8') { $from = strtoupper($from) == 'UTF8' ? 'utf-8' : $from; $to = strtoupper($to) == 'UTF8' ? 'utf-8' : $to; if (strtoupper($from) === strtoupper($to) || empty($fCo