www.adminn.cn
站长正能量分享网!

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

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

本文章来介绍了在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. } */ 

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php中对象转换数组与数组转换对象实例》
文章链接:https://www.adminn.cn/news/7231.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

本站源码仅供本地环境下学习借鉴研究使用!

源码请勿用于任何涉灰站点!净化网络,站长更有责!

支付宝扫一扫打赏