簡體   English   中英

json_decode值數學在循環中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM