You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现从文本文件复制指定时间戳并追加到对应行

实现按组追加后续时间戳到文本行的PHP解决方案

看了你的需求和现有代码,核心是要把每组(3行一组)的下一组时间戳追加到当前组的每一行末尾。我来帮你调整代码实现这个效果:

首先明确处理逻辑:

  • 把已组合好的行按3个一组拆分
  • 提取每个组的时间戳(同组内所有行时间戳一致,取任意一行的最后一个字段即可)
  • 遍历每个组,将下一组的时间戳追加到当前组的每一行(最后一组无需追加)
  • 将处理后的内容写入目标文件

以下是修改后的完整代码,关键部分添加了注释:

// 保留你原有的数据准备逻辑
$t=time(); 
$myfile1 = fopen("temp/time.txt", "w"); 
for ($i = 0; $i <= 5; $i++) { 
    fwrite($myfile1, $t.";\n"); 
} 
$ranks = fopen("temp/ranks.txt", "w"); 
$selected_val = $_POST['rank1'].";\n".$_POST['rank2'].";\n".$_POST['rank3'].";\n".$_POST['rank4'].";\n".$_POST['rank5'].";\n".$_POST['rank6'].";"; 
fwrite($ranks, $selected_val); 

$ranks_array = file("temp/ranks.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 
$time_array = file("temp/time.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 
$first_page_array = file("temp/userID.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 
$second_page_array = file("data/data1.txt",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 

// 组合成原始每行数据(去除多余换行/空格)
$final_array = []; 
foreach($first_page_array as $key=>$first_page){ 
    $final_array[] = trim($first_page . $second_page_array[$key] . $ranks_array[$key] . $time_array[$key]);
} 

// 按3行一组拆分数组,匹配你的分组规则
$groups = array_chunk($final_array, 3);

// 提取每个组的时间戳(取每组第一行的最后一个字段)
$group_timestamps = [];
foreach ($groups as $group) {
    $parts = explode(';', $group[0]);
    $group_timestamps[] = end($parts);
}

// 处理每组,追加下一组的时间戳
$processed_lines = [];
foreach ($groups as $group_index => $group) {
    // 非最后一组,追加下一组时间戳
    if ($group_index < count($groups) - 1) {
        $next_timestamp = $group_timestamps[$group_index + 1];
        foreach ($group as $line) {
            $processed_lines[] = $line . ';' . $next_timestamp;
        }
    } else {
        // 最后一组直接保留原内容
        $processed_lines = array_merge($processed_lines, $group);
    }
}

// 将处理后的内容写入文件,每行添加换行符
file_put_contents('output.txt', implode("\n", $processed_lines) . "\n", FILE_APPEND | LOCK_EX);

关键逻辑说明:

  • 用array_chunk快速实现按3行分组,完美匹配你描述的“每3行时间戳相同”的结构
  • 提取组时间戳时,利用同组时间戳一致的特性,只取每组第一行的最后一个字段,提升效率
  • 遍历分组时通过索引判断是否为最后一组,避免给最后一行追加无效内容
  • 最后用implode将数组转为带换行的字符串,保证写入文件后格式符合预期

内容的提问来源于stack exchange,提问作者Rulli Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:48:28