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?
)?
**/
轉載于:https://blog.51cto.com/vabc1314/1879670
總結
以上是生活随笔為你收集整理的PHP 对象、数组间的转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux-rmdir命令
- 下一篇: Linux snmp