thinkPHP5.1 数据库合并 start_time字段 三分钟内相近 的 size字段 数据
时间: 2024-04-29 16:20:56 浏览: 83
以下是使用thinkPHP5.1合并数据库中start_time字段三分钟内相近的size字段数据的示例代码:
```php
use think\Db;
// 获取当前时间戳
$now = time();
// 获取三分钟前的时间戳
$start_time = $now - 180;
// 查询符合条件的数据
$list = Db::table('your_table')
->where('start_time', '>=', $start_time)
->where('start_time', '<=', $now)
->order('start_time asc')
->select();
// 合并相近的数据
$result = array();
foreach ($list as $key => $value) {
if (empty($result)) {
$result[] = $value;
} else {
$last_key = count($result) - 1;
if ($value['start_time'] - $result[$last_key]['start_time'] <= 180) {
$result[$last_key]['size'] += $value['size'];
} else {
$result[] = $value;
}
}
}
// 输出结果
dump($result);
```
上述代码中,首先获取当前时间戳和三分钟前的时间戳,然后使用where条件查询符合条件的数据,按照start_time升序排序,再使用foreach循环合并相近的数据,最后输出结果。其中,$list变量保存查询到的数据,$result变量保存合并后的数据。如果两条数据的start_time相差不超过180秒,则将它们的size字段相加,否则将它们作为新的一条数据添加到$result数组中。
阅读全文