PHP数组和对象之间的互换
今天在和前端对接接口的时候,从后台返回数据给前端的时候出现如下JSON格式数据
1 "goods": [ 2 { 3 "id": "dEQ144800584Lx", 4 "ico": "img/goodsIco/HRg144800864lp.jpg" 5 }, 6 { 7 "id": "dhD144800584BJ", 8 "ico": "" 9 }, 10 { 11 "id": "oho144800584BB", 12 "ico": "" 13 }, 14 { 15 "id": "sBr144800584fo", 16 "ico": "" 17 }, 18 { 19 "id": "WqD144800584YX", 20 "ico": "img/goodsIco/gDK144800869wI.jpg" 21 } 22 ],
说明该键值是以数组的形式传递,而前端需要goods对象,所以后台调试接口时候查询到几个方法,可以封装进项目里面,拿来即可使用,还是比较方便。
1 /** 2 * 数组 转 对象 3 * 4 * @param array $arr 数组 5 * @return object 6 */ 7 function array_to_object($arr) { 8 if (gettype($arr) != 'array') { 9 return; 10 } 11 foreach ($arr as $k => $v) { 12 if (gettype($v) == 'array' || getType($v) == 'object') { 13 $arr[$k] = (object)array_to_object($v); 14 } 15 } 16 17 return (object)$arr; 18 }
/** * 对象 转 数组 * * @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; }
经过转换后的JSON数据为一下形式:
"goods": { "id": "MbD144800562Xu", "name": "登山杖", "ico": "img/goodsIco/mmh144800859ld.jpg", "price": "500.00", "soldPrice": "400.00", "usercp": "50", "time": "2019-10-16 14:50:28", "payNum": 2 },
也就在大学里面学过PHP,而才在新公司从事PHP开发几个月,还有很多需要学习的地方!在此记录一些学习内容2333
参考链接:https://blog.csdn.net/DickyQie/article/details/79235276