> php教程> PHP源码> 본문

PHP对象(object) 与 数组(array) 的转换例子

WBOY
풀어 주다: 2016-07-06 13:34:21
원래의
1739명이 탐색했습니다.

PHP对象(object) 与 数组(array) 的转换我们开发中用到的非常的多了,对于这个问题我们今天整理一些例子,具体的如下所示。

数组是PHP的灵魂,非常强大,但有时候面向对象编程也是挺方便的,数组 与 对象 之间切换也是常有的事:

例子一

代码如下 复制代码

/**
* 数组 转 对象
*
* @param array $arr 数组
* @return object
*/
function array_to_object($arr)
{
if (gettype($arr) != 'array')
{
return;
}
foreach ($arr as $k => $v)
{
if (gettype($v) == 'array' || getType($v) == 'object')
{
$arr[$k] = (object)array_to_object($v);
}
}

return (object)$arr;
}

/**
* 对象 转 数组
*
* @param object $obj 对象
* @return array
*/
function object_to_array($obj)
{
$obj = (array)$obj;
foreach ($obj as $k => $v)
{
if (gettype($v) == 'resource')
{
return;
}
if (gettype($v) == 'object' || gettype($v) == 'array')
{
$obj[$k] = (array)object_to_array($v);
}
}

return $obj;
}

例子2

代码如下 复制代码

class Test{
public $a;
public $b;
public function __construct($a) {
$this->a = $a;
}
}

//对象转数组,使用get_object_vars返回对象属性组成的数组
function objectToArray($obj){
$arr = is_object($obj) ? get_object_vars($obj) : $obj;
if(is_array($arr)){
return array_map(__FUNCTION__, $arr);
}else{
return $arr;
}
}

//数组转对象
function arrayToObject($arr){
if(is_array($arr)){
return (object) array_map(__FUNCTION__, $arr);
}else{
return $arr;
}
}

$test = new Test('test1');
$test->b = new Test('test2');

print_r($test);
$array = objectToArray($test);
print_r($array);
$object = arrayToObject($array);
print_r($object);

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!