为了账号安全,请及时绑定邮箱和手机立即绑定

PHP JSON 错误值

PHP JSON 错误值

PHP
桃花长相依 2022-06-17 15:38:04
JSON数据{    "data":{       "count":1,      "orders":[          {             "voucher_platform":0,            "voucher":0.00,            "order_number":270269205514864,            "voucher_seller":0,            "created_at":"2019-12-15 18:03:44 +0800",            "gift_option":false,            "statuses":[                "delivered"            ],            "address_billing":{                "last_name":"",               "address5":"Sample",               "address4":"Sample",               "first_name":"Sample name"            },            "extra_attributes":"",            "order_id":270269205514864,            "gift_message":"",            "remarks":"",            "address_shipping":{                "country":"",               "address3":"",               "address2":"",               "city":"",               "phone":"",            }         }      ]   },   "code":"0",   "request_id":"0b0da12615764049458554660"}我的值有问题order_number,而不是得到正确的值,270269205514864我得到的结果是2.7087557899228E+14。我认为这个问题有点与字符串和数值有关,但我不知道如何解决它。这是我的一些与解码 json 数据相关的代码。...$data = ... //assuming the json is already initialized$data = json_decode($data, true); //decode the json$OrderNumber = $data['data']['orders'][0]["order_number"]; //get order number$CustomerName = $data['data']['orders'][0]["address_billing"]["first_name"]; //get nameecho $OrderNumber;echo '<br/>';echo $CustomerName;echo '<br/>';echo 'JSON DATA:';die($data);无论如何,JSON 来自另一台服务器,所以我无法编辑它们。我只收到 JSON。
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

PHP 正在将您的数字转换为科学计数法。您可以使用该number_format()函数对其进行转换以控制其显示方式。


在您的情况下,假设order_number始终是一个不应该有任何千位分隔符的正整数,您需要更改. 因此,这就是我要做的number_format()


// Get the order number

$OrderNumber = $data['data']['orders'][0]["order_number"];


// Make sure it is formatted properly

$OrderNumber = number_format($OrderNumber, 0, '.', ''); // Notice that the last parameter is set to empty string, to override the default and make sure there is no thousands separator

请注意,这将导致order_number成为一个数字。如果您想order_number作为字符串处理,那么您应该添加以下代码行strval()


$OrderNumberAsString = strval($OrderNumber);


查看完整回答
反对 回复 2022-06-17
?
www说

TA贡献1775条经验 获得超8个赞

2.7087557899228E+14相当于270269205514864。2.7087557899228E+14 是科学计数法。

要进入原始或正常形式,请使用:number_format($number, 6),其中 6 是小数点后的前导数字长度。

$OrderNumber = number_format($data['data']['orders'][0]["order_number"], 6);


查看完整回答
反对 回复 2022-06-17
  • 2 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信