有时候会遇到php中对象和数组之间的互相转换
/**
* 将对象转换为多维数组
*
**/
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;
}
}//对象转化数组的形式
private function object_to_array($object){
foreach($object as $k=>$v){
if(is_object($v)){
$data[] = get_object_vars($v);
}
}
return $data ;
}array_map摘自php手册上面的
PHP 4 >= 4.0.6, PHP 5)
array_map -- 将回调函数作用到给定数组的单元上
说明
array array_map ( callback callback, array
arr1 [, array ...] )
array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback
作用过之后的单元。callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
例 1. array_map() 例子
{
return($n*$n*$n);
}$a= array(1,2,3,4,5);$b=array_map("cube",$a);print_r($b);?>
这使得 $b 成为:
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)