php中数组和工具互转换的要领

上午在做一个php项目时,碰着了一个工具与数组之间彼此转换的问题,就随手写了两个关于工具转数组,数组转工具的自界说函数,记录一下,分享有需要的童鞋。

php 数组转工具的函数

函数代码:

<?php function arr_to_obj($arr){     $obj = null;     if (is_array($arr)) {         $obj = new StdClass();         foreach ($arr as $key => $a){             $obj->$key = $a;         }     }     if (is_object($arr)){         $obj = $arr;     }     return $obj; } ?>

函数挪用要领:

<?php //这是一个数组 $arr = array('name' => '小明','sex' => 16); $obj = arr_to_obj($arr); echo $obj->name; // 输出功效: 小明 ?>

注:

stdClass类是一个没有成员变量也没有成员要领的类,它所有的把戏要领,父类、接口等在初始化时都被配置成NULL。由于在PHP中对付一个类我们无法动态的添加要领, 所以这个类只能用来处理惩罚动态属性,这也是我们一种常见的用法。

php 工具转数组的函数

函数代码:

<?php function obj_to_arr($obj){     $array = array();     if (is_object($obj)){         foreach ($obj as $key => $a) {             $array[$key] = $a;         }     }     if(is_array($obj)){         $array = $obj;     }     return $array; } ?>

函数挪用:

<?php //建设一个类,并添加工具 $obj = new StdClass(); $obj->Name = '飞鸟慕鱼博客'; $obj->Host = ''; $arr = obj_to_arr($obj); var_dump($arr); ?>

输出功效:

array(2) {   ["Name"]=>   string(18) "飞鸟慕鱼博客"   ["Host"]=>   string(24) "" }

增补说明:

is_object():用于检测变量是否是一个工具。

is_array():用于检测变量是否是一个数组

系统函数数组与工具的互转

1、工具转数组

<?php $obj = new StdClass(); $obj->Name = '小红'; $obj->Sex = '16'; //这里开始转换 // json_encode() 函数的第二个参数true $arr = json_decode(json_encode($obj),true); var_dump($arr); ?>

打印功效:

array(2) {   ["Name"]=>   string(6) "小红"   ["Sex"]=>   string(2) "16" }

2、数组转工具

<?php $arr = array('id'=>1,'name'=>'aaa'); // json_encode() 函数的第二个参数未配置,默认为 false $obj = json_decode(json_encode($arr)); var_dump($obj); ?>

打印功效:

object(stdClass)#3 (2) {   ["id"]=>   int(1)   ["name"]=>   string(3) "aaa" }php 数组与工具互转的其它要领
<?php /**  * 数组 TO 工具  * 飞鸟慕鱼博客  * @param array $arr 数组  * @return object  */ function arrayToObject($arr) {     if (gettype($arr) != 'array') {         return;     }     foreach ($arr as $k => $v) {         if (gettype($v) == 'array' || getType($v) == 'object') {             $arr[$k] = (object)arrayToObject($v);         }     }     return (object)$arr; } /**  * 工具 TO 数组  * 飞鸟慕鱼博客  * @param object $obj 工具  * @return array  */ function objectToArray($obj) {     $obj = (array)$obj;     foreach ($obj as $k => $v) {         if (gettype($v) == 'resource') {             return;         }         if (gettype($v) == 'object' || gettype($v) == 'array') {             $obj[$k] = (array)objectToArray($v);         }     }     return $obj; } ?>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/8945.html