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 )

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。