php+对象+toarray_PHP 对象、数组间的转换
PHP 對象、數組間的轉換
/**
*?PHP?對象、數組間的轉換
*
*?@author?flyer0126
*?@since?2012/05/03
**/
//?1.?利用(array)和(object),簡單處理
$objTemp?=?(object)array();
$objTemp->a?=?1;
$objTemp->b?=?2;
$objTemp->c?=?3;
$arrTemp?=?(array)$objTemp;
print_r($objTemp);
print_r($arrTemp);
/**
stdClass?Object
(
[a]?=>?1
[b]?=>?2
[c]?=>?3
)
Array
(
[a]?=>?1
[b]?=>?2
[c]?=>?3
)
**/
//?PS:簡單的(array)和(object)只能處理單層的數據,對于多層的數組和對象轉換則無能為力。
//?2.?多維數組與對象間的轉換處理
/**
*?將對象轉換為多維數組
*
**/
function?objectToArray($d)?{
if?(is_object($d))?{
//?Gets?the?properties?of?the?given?object
//?with?get_object_vars?function
$d?=?get_object_vars($d);
}
if?(is_array($d))?{
/*
*?Return?array?converted?to?object
*?Using?__FUNCTION__?(Magic?constant)
*?for?recursive?call
*/
return?array_map(__FUNCTION__,?$d);
}
else?{
//?Return?array
return?$d;
}
}
/**
*?將多維數組轉換為對象
*
**/
function?arrayToObject($d)?{
if?(is_array($d))?{
/*
*?Return?array?converted?to?object
*?Using?__FUNCTION__?(Magic?constant)
*?for?recursive?call
*/
return?(object)?array_map(__FUNCTION__,?$d);
}
else?{
//?Return?object
return?$d;
}
}
//?Useage:
$init?=?new?stdClass;
$init->foo?=?"Test?data";
$init->bar?=?new?stdClass;
$init->bar->baaz?=?"Testing";
$init->bar->fooz?=?new?stdClass;
$init->bar->fooz->baz?=?"Testing?again";
$init->foox?=?"Just?test";
//?Convert?array?to?object?and?then?object?back?to?array
$array?=?objectToArray($init);
$object?=?arrayToObject($array);
//?Print?objects?and?array
print_r($init);
print_r($array);
print_r($object);
/**
stdClass?Object
(
[foo]?=>?Test?data
[bar]?=>?stdClass?Object
(
[baaz]?=>?Testing
[fooz]?=>?stdClass?Object
(
[baz]?=>?Testing?again
)
)
[foox]?=>?Just?test
)
Array
(
[foo]?=>?Test?data
[bar]?=>?Array
(
[baaz]?=>?Testing
[fooz]?=>?Array
(
[baz]?=>?Testing?again
)
)
[foox]?=>?Just?test
)
stdClass?Object
(
[foo]?=>?Test?data
[bar]?=>?stdClass?Object
(
[baaz]?=>?Testing
[fooz]?=>?stdClass?Object
(
[baz]?=>?Testing?again
)
)
[foox]?=>?Just?test
)
**/
總結
以上是生活随笔為你收集整理的php+对象+toarray_PHP 对象、数组间的转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5.7.21mysql数据库_【数据库】
- 下一篇: php真随机数,php 的伪随机数与真随