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 => http://www.hzhuti.com/nokia/5233/,
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) "http://www.hzhuti.com/nokia/5233/" [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"
}


           

更多详细内容请查看:http://www.111cn.net/phper/php-cy/41861.htm

原文地址:https://www.cnblogs.com/phpfans2012/p/2339598.html