数据统一格式化

该文章展示了一个PHP函数,该函数接收一个对象,将其解码为JSON,然后遍历数据,根据数据类型重新组织结构。如果键是字符串且包含err字段,它会提取err值;如果值是数组且所有键为数字,则将数组元素添加到新数组中;对于字符串值,直接保留在新数组中。最后,函数将处理后的数据编码回JSON对象。
摘要由CSDN通过智能技术生成
function toObject($object){
    $newData = [];
    $data=json_decode($object,true);
    foreach ($data as $key => $val){
        if(is_array($data[$key]) && count(array_filter(array_keys($data[$key]),'is_string')) && isset($val['err'])){
            $newOne[$key.'.'.'err'] = $val['err'];
            $newData = array_merge($newData,$newOne);
        }elseif (is_array($data[$key]) && count(array_filter(array_keys($data[$key]),'is_string'))==0 && count($val) == count($val, 1)){
            $newList = [];
            for($i=0;$i<count($val);$i++){
                $newList[$key.'.'.$i] = $val[$i];
            }
            $newData = array_merge($newData,$newList);
        }elseif (is_string($data[$key])){
            $newRe[$key] = $val;
            $newData = array_merge($newData,$newRe);
        }
    }
    return json_encode((object)$newData,320);
}
//模拟数据
$object = '{
            "data666":{
                "err":1,
                "msg":"错误"
            },
            "list666":["a","b"],
            "request_id666":"geo5-esd1-efor-veuq"
        }';
//方法调用
$result = toObject($object);
print_r($result);die;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值