php解决返回数据数字变成科学计数法后转换问题
问题 id int型数字过长,json_decode的时候已经转成科学计数了通过格式化后数字已经变了
$obj='{"order_id":20180110000000001}';
$obj=json_decode($obj,TRUE);
foreach ($obj as $key=>$val){
$obj[$key]=number_format($val.'',0,'','');
}
print_r($obj); 结果 Array ( [order_id] => 20180110000000000 )
问题 id 字符串型数字过长,json_decode的时候已经转成科学计数了通过格式化后数字已经变了
$obj='{"order_id":"20180110000000001"}';
$obj=json_decode($obj,TRUE);
foreach ($obj as $key=>$val){
phpjson格式化输出
$obj[$key]=number_format($val.'',0,'','');
}
print_r($obj); 结果 Array ( [order_id] => 20180110000000000 )
解决⽅案 id 传过来必须是 字符串型 通过⼏次函数操作即可
$obj='{"order_id":"20180110000000001"}';
$obj=json_decode($obj,TRUE);
foreach ($obj as $key=>$val){
if ((is_numeric($val))&&(strpos($val,'.')))
{
$obj[$key] = rtrim(rtrim(number_format($val,12,',',''),'0'),',');
}
}
print_r($obj); Array ( [order_id] => 20180110000000001 )