1
我有一個JSON文件,其中包含各個時間點的特定值的值。目前,它很混亂,幷包含很多的重複。我想通過將重複項組織到一個日期範圍來清理它。如何從數組中創建日期範圍?
JSON文件的結構如下:
[
{
"value": ".298",
"time": "21 May 2015 1:18:06 AM"
},
[...]
{
"value": ".298",
"time": "21 May 2015 12:15:07 PM"
},
{
"value": ".046",
"time": "21 May 2015 12:20:08 PM"
},
[...]
{
"value": ".046",
"time": "21 May 2015 12:30:15 PM"
},
{
"value": ".004",
"time": "22 May 2015 8:55:06 PM"
},
[...]
{
"value": ".004",
"time": "22 May 2015 9:45:06 PM"
}
]
而且想我的輸出:
21/05 01:19:06 AM to 21/05 12:15:07 PM, value: .298
21/05 12:25:08 PM to 21/05 12:30:15 PM, value: .046
22/05 09:40:06 PM to 22/05 09:45:06 PM, value: .004
這是我的代碼至今:
foreach ($json as $sub) {
if (isset($value)) {
if ($value == $sub['value'] || $value == NULL) {
$range[$i][] = [strtotime($sub['time']), $sub['value']];
}
else {
$i++;
}
}
$value = $sub['value'];
}
foreach ($range as $daterange) {
$begin = $daterange[0][0];
$end = $daterange[count($daterange)-1][0];
printf('%s to %s, value: %s',
date('d/m h:i:s A', $begin),
date('d/m h:i:s A', $end),
$daterange[0][1]
);
echo "<br/>";
}
我發佈的代碼大部分工作,但在處理包含空值的大數組時,它似乎有問題。因爲重複的內容仍然存在。
我該如何解決?我敢肯定這個hacky方法可以使用DateTime類改進更多;我希望有人能告訴我它是如何完成的。
你能表現出你提到的空值是如何出現的例子嗎? –
*我想輸出: 21/05 01:19:06 AM to 21/05 12:15:07 PM,value:.298 *你在哪裏抽時間? – splash58
@ splash58:不確定你的意思。 –