订单content.order_id是18位数据,在php转换成json数组时,其值会变化,最后3位会替换成其他值(没规律)。
解决办法:
将order_id串替换成字符串再转换成json。
//!! $content为stdObject,要转换为array $content = json_decode(json_encode($content),true); $foo = $content['messages']['tmc_message']; foreach($foo as $idx=>$item){ $bar = preg_replace('/\\"order_id\\":(\d+),/','"order_id":"\1",',$item['content']); $foo[$idx]['content'] = json_decode($bar,true); }