当前位置:首页 > 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.  
  17.  if (gettype($arr) != 'array') 
  18.  
  19.  { 
  20.  
  21.   return; 
  22.  
  23.  } 
  24.  
  25.  foreach ($arr as $k => $v) 
  26.  
  27.  { 
  28.  
  29.   if (gettype($v) == 'array' || getType($v) == 'object') 
  30.  
  31.   { 
  32.  
  33.    $arr[$k] = (object)array_to_object($v); 
  34.  
  35.   } 
  36.  
  37.  } 
  38.  return (object)$arr; 
  39.  
  40. } 
  41. /** 
  42.  
  43.  * 对象 转 数组 
  44.  
  45.  * 
  46.  
  47.  * @param object $obj 对象 
  48.  
  49.  * @return array 
  50.  
  51.  */ 
  52.  
  53. function object_to_array($obj) 
  54.  
  55. { 
  56.  
  57.  $obj = (array)$obj; 
  58.  
  59.  foreach ($obj as $k => $v) 
  60.  
  61.  { 
  62.  
  63.   if (gettype($v) == 'resource') 
  64.  
  65.   { 
  66.  
  67.    return; 
  68.  
  69.   } 
  70.  
  71.   if (gettype($v) == 'object' || gettype($v) == 'array') 
  72.  
  73.   { 
  74.  
  75.    $obj[$k] = (array)object_to_array($v); 
  76.  
  77.   } 
  78.  
  79.  } 
  80. //phpfensi.com 
  81.  return $obj; 
  82.  
  83. } 

例子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.  
  37. function arrayToObject($arr){ 
  38.  
  39.     if(is_array($arr)){ 
  40.  
  41.         return (object) array_map(__FUNCTION__, $arr); 
  42.  
  43.     }else{ 
  44.  
  45.         return $arr; 
  46.  
  47.     }
  48. } 
  49.  
  50. $test = new Test('test1'); 
  51.  
  52. $test->b = new Test('test2'); 
  53.  
  54. print_r($test); 
  55.  
  56. $array = objectToArray($test); 
  57.  
  58. print_r($array); 
  59.  
  60. $object = arrayToObject($array); 
  61.  
  62. print_r($object);

Tags: PHP对象 object array

分享到: