[英]json_decode value math's in loop
我有一個循環,通過json_decode
處理JSON
字符串。
我試圖在將值傳遞到表之前對值執行一些數學計算。 目前,我可以使用echo $mileage1.";";
在循環內回顯所需的輸出echo $mileage1.";";
但是我需要將密鑰lc
更改為1000
的除法。
必須有一種方法可以在foreach
語句中而不是在塊中進行操作: foreach(json_decode($url2, true)['status'] ($status["lc"] / 1000) as $status)
的東西($status["lc"] / 1000)
在循環塊外進行數學運算的示例。
到目前為止,我還沒有找到有關此特定情況的任何示例。 任何建議將不勝感激。
這是我的代碼片段:
$ret_array = array();
$url2 = file_get_contents("http://URLApi?");
foreach(json_decode($url2, true)['status'] as $status){
//mileage maths??
$mileage = $status["lc"];
$mileage1 = ($mileage) / 1000;
//echo $mileage1.";";
$ret_array[] = $status;
}
return $ret_array;
有三個選項可將數組中的值替換為foreach
的計算值:
首先,引用&
值以在原始數組中對其進行更改:
$array = json_decode($url2, true);
foreach($array['status'] as &$status){
$status["lc"] = $status["lc"] / 1000;
}
其次,使用鍵修改原始數組:
$array = json_decode($url2, true);
foreach($array['status'] as $key => $status){
$array['status'][$key]["lc"] = $status["lc"] / 1000;
}
第三,創建一個新的結果數組:
foreach(json_decode($url2, true)['status'] as $status){
$status["lc"] = $status["lc"] / 1000;
$result[] = $status;
}
// Or if you need to preserve keys:
foreach(json_decode($url2, true)['status'] as $key => $status){
$status["lc"] = $status["lc"] / 1000;
$result[$key] = $status;
}
您還可以將每個元素映射到執行計算的函數:
$result = array_map(function($v) { return $v['lc'] = $v['lc'] / 1000; },
json_decode($url2, true)['status']);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.