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

posted @ 2019-10-25 10:35  逃避の人生  阅读(254)  评论(0编辑  收藏  举报