当前位置:首页 > PHP教程 > php高级应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2018-09-15 23:11:07 浏览: 评论:0 

数组是PHP的灵魂,非常强大,但有时候面向对象编程也是挺方便的,数组 与 对象 之间切换也是常有的事:

例子一:

  1. /** 
  2.  
  3.  * 数组 转 对象 
  4.  
  5.  * 
  6.  
  7.  * @param array $arr 数组 
  8.  
  9.  * @return object 
  10.  
  11.  */ 
  12.  
  13. function array_to_object($arr
  14.  
  15.  
  16.  if (gettype($arr) != 'array'
  17.  
  18.  { 
  19.  
  20.   return
  21.  
  22.  } 
  23.  
  24.  foreach ($arr as $k => $v
  25.  
  26.  { 
  27.  
  28.   if (gettype($v) == 'array' || getType($v) == 'object'
  29.  
  30.   { 
  31.  
  32.    $arr[$k] = (object)array_to_object($v); 
  33.  
  34.   } 
  35.  
  36.  } 
  37.  return (object)$arr
  38.  
  39. /** 
  40.  
  41.  * 对象 转 数组 
  42.  
  43.  * 
  44.  
  45.  * @param object $obj 对象 
  46.  
  47.  * @return array 
  48.  
  49.  */ 
  50.  
  51. function object_to_array($obj
  52.  
  53.  
  54.  $obj = (array)$obj
  55.  
  56.  foreach ($obj as $k => $v
  57.  
  58.  { 
  59.  
  60.   if (gettype($v) == 'resource'
  61.  
  62.   { 
  63.  
  64.    return
  65.  
  66.   } 
  67.  
  68.   if (gettype($v) == 'object' || gettype($v) == 'array'
  69.  
  70.   { 
  71.  
  72.    $obj[$k] = (array)object_to_array($v); 
  73.  
  74.   } 
  75.  
  76.  } 
  77. //phpfensi.com 
  78.  return $obj
  79.  

例子2:

  1. <?php
  2.  
  3. class Test{ 
  4.  
  5.     public $a
  6.  
  7.     public $b
  8.  
  9.     public function __construct($a) { 
  10.  
  11.         $this->a = $a
  12.  
  13.     } 
  14.  
  15. } 
  16.  
  17. //对象转数组,使用get_object_vars返回对象属性组成的数组 
  18.  
  19. function objectToArray($obj){ 
  20.  
  21.     $arr = is_object($obj) ? get_object_vars($obj) : $obj
  22.  
  23.     if(is_array($arr)){ 
  24.  
  25.         return array_map(__FUNCTION__$arr); 
  26.  
  27.     }else
  28.  
  29.         return $arr
  30.  
  31.     } 
  32.  
  33.  
  34. //数组转对象 
  35.  
  36. function arrayToObject($arr){ 
  37.  
  38.     if(is_array($arr)){ 
  39.  
  40.         return (object) array_map(__FUNCTION__$arr); 
  41.  
  42.     }else
  43.  
  44.         return $arr
  45.  
  46.     }
  47. } 
  48.  
  49. $test = new Test('test1'); 
  50.  
  51. $test->b = new Test('test2'); 
  52.  
  53. print_r($test); 
  54.  
  55. $array = objectToArray($test); 
  56.  
  57. print_r($array); 
  58.  
  59. $object = arrayToObject($array); 
  60.  
  61. print_r($object);

Tags: PHP对象 object array

分享到: