亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 109 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號