当前位置:首页 > PHP教程 > php数组 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-01 16:34:49 浏览: 评论:0 

本文章来介绍了在php中如何把数组转换成对象或是把对象转换成数组对象,用stdClass转换数组为对象,代码如下:

  1. $arr = array();                                             
  2. $arr['a'] = 1;   
  3. $arr['b'] = 2; 
  4. $arr['c'] = 3; 
  5. $arr = array();  
  6. $arr['a'] = 1;  
  7. $arr['b'] = 2;  
  8. $arr['c'] = 3;  

用stdClass转换后,代码如下:

  1. $object   = new StdClass;   
  2. $object->a = 1;  
  3. $object->b = 2;  
  4. $object->c = 3; 
  5.  
  6. $object   = new StdClass;  
  7. $object->a = 1;   
  8. $object->b = 2;  
  9. $object->c = 3;  

stdClass是PHP的一个基类,所有的类几乎都继承这个类,所以任何时候都可以被new,可以让这个变量成为一个object,同时,这个基类又有一个特殊的地方,就是没有方法.

我应用的地方是simplexml中的simplexml_load_string()上,因为返回的全是对象,如果提取数据比较麻烦,所以应用了下面的函数,代码如下:

  1. function object_to_array($obj)  
  2. {  
  3. $_arr = is_object($obj) ? get_object_vars($obj) : $obj;  
  4. foreach ($_arr as $key => $val)  
  5. {  
  6. $val = (is_array($val) || is_object($val)) ? object_to_array($val) : $val;  
  7. $arr[$key] = $val;  
  8. }  
  9. return $arr;  

数组转换成对象,代码如下:

  1. <?php 
  2. $array = array(1 => php,   
  3.            2 => java,   
  4.            3 => c );  
  5. $arrayobject = new ArrayObject($array);  
  6.  
  7. var_dump($arrayobject);   
  8. ?> 
  9. //运行结果如下: 
  10. //object(ArrayObject)#1 (1) { ["storage":"ArrayObject":private]=> array(3) { [1]=> string(3) "php" [2]=> string(4) "java" [3]=> string(3) "c " }}  

一个类:ArrayObject,可以直接将数组转化为对象,代码如下:

  1. $array = array('1' => 'one',                        
  2.                '2' => 'two',                                   
  3.                '3' => 'three');                               
  4. $arrayobject = new ArrayObject($array);    
  5. var_dump($arrayobject);                             
  6. $array = array('1' => 'one',                          
  7.                '2' => 'two',                                   
  8.                '3' => 'three');                               
  9. $arrayobject = new ArrayObject($array);    
  10. var_dump($arrayobject);       
  11. /* 
  12.  结果如下: 
  13. Php代码  
  14. object(ArrayObject)#1 (3) {                         
  15. [1]=>                                                         
  16. string(3) "one"                                          
  17. [2]=>                                                         
  18. string(3) "two"                                           
  19. [3]=>                                                         
  20. string(5) "three"                                        
  21. } */ 

Tags: 对象转换数组 数组转换对象

分享到: