以下是一个简单的PHP滑动窗口实例,该实例将展示如何使用滑动窗口算法来处理数据流。在这个例子中,我们将创建一个函数来模拟处理一个固定大小窗口内的数据,并在窗口移动时更新处理结果。
```php

function slidingWindow($dataStream, $windowSize) {
$results = [];
$window = [];
foreach ($dataStream as $index => $value) {
// 当窗口达到最大大小时,移除最旧的数据
if (count($window) == $windowSize) {
array_shift($window);
}
// 添加新的数据到窗口
array_push($window, $value);
// 如果窗口已满,处理窗口中的数据
if (count($window) == $windowSize) {
$sum = array_sum($window);
$results[] = [
'window_start' => $index - $windowSize + 1,
'window_end' => $index,
'sum' => $sum,
'average' => $sum / $windowSize
];
}
}
return $results;
}
// 示例数据流
$dataStream = [1, 3, 5, 7, 9, 2, 4, 6, 8, 10];
// 设置窗口大小
$windowSize = 4;
// 应用滑动窗口函数
$result = slidingWindow($dataStream, $windowSize);
// 打印结果
echo "


