PHP通过对齐时间戳合并两个连续的时间序列数据数组

PHP通过对齐时间戳合并两个连续的时间序列数据数组,php,arrays,merge,Php,Arrays,Merge,我有一个主数据数组,它总是由600秒的数据按时间升序组成。数据如下所示: [{'timestamp' => '2016-10-10T10:00:00', 'p_value' => 55 }, {'timestamp' => '2016-10-10T10:00:01', 'p_value' => 57 }, {'timestamp' => '2016-10-10T10:00:02', 'p_value' => 51 }, {'timestamp' => '

我有一个主数据数组,它总是由600秒的数据按时间升序组成。数据如下所示:

[{'timestamp' => '2016-10-10T10:00:00', 'p_value' => 55 },
{'timestamp' => '2016-10-10T10:00:01', 'p_value' => 57 },
{'timestamp' => '2016-10-10T10:00:02', 'p_value' => 51 },
{'timestamp' => '2016-10-10T10:00:03', 'p_value' => 54 },
{'timestamp' => '2016-10-10T10:00:04', 'p_value' => 48 }]
我有一个辅助阵列,它有多达600秒的数据。此数据是主数据数组时间戳的连续“子集”,但起始(和结束)时间戳值可能会有所不同:

[{'timestamp' => '2016-10-10T10:00:01', 's_value' => 1221 },
{'timestamp' => '2016-10-10T10:00:02', 's_value' => 4322 },
{'timestamp' => '2016-10-10T10:00:03', 's_value' => 2414 },]
如何通过时间戳将次数组与主数组“对齐”,然后以计算效率最高的方式将“s_值”添加到主数组中


我已经使用嵌套的foreach循环实现了一些非常类似的东西,但是我认为这是O(N^2)复杂性

假设第一个数组在
$firstArr
中,第二个数组在
$secondArr
中,并且还假设


$secondArr[count($secondArr)-1]['timestamp]感谢您提供此解决方案,我已经实施了它,并确认它能按预期工作。
for($i=0; $i<count($firstArr); $i++)
{
    if($firstArr[$i]['timestamp'] == $secondArr[0]['timestamp'])
    {
        $startingIndex = $i;
        break;
    }
}

for($i=0; $i<count($secondArr); $i++)
{
    $firstArr[$startingIndex+$i]['s_value'] = $secondArr[$i]['s_value'];
}