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

PHP实现文本文件温度数据转换为独立数组的技术问询

解决温度数据文件的数值提取问题

看起来你现在的核心问题是如何把文本文件里的所有温度数值(整数、浮点数)提取成独立的数组元素,而不是按行存储。你的现有代码因为用了固定长度拆分字符再合并成行,导致没法拆分每行里的单个数值,这里给你两种简单高效的解决方案:

方法一:正则表达式一键拆分所有数值

这种方法最简洁,直接用正则匹配所有空白字符(包括空格、换行、制表符)作为分隔符,一次性提取所有数值:

// 读取文件全部内容
$content = file_get_contents('C:\xampp\htdocs\gruodis.txt');

// 用正则拆分所有空白字符,trim()去掉首尾空白,避免空元素
$temperatureValues = preg_split('/\s+/', trim($content));

// 把所有字符串数值转成float类型,方便后续计算平均值等操作
$temperatureValues = array_map('floatval', $temperatureValues);

// 查看结果
var_dump($temperatureValues);

方法二:逐行读取拆分(适合大文件)

如果你的文件非常大,逐行读取可以减少内存占用,步骤如下:

// 读取文件所有行,忽略空行和换行符
$lines = file('C:\xampp\htdocs\gruodis.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$temperatureValues = [];
foreach ($lines as $line) {
    // 拆分当前行的空白字符,提取数值
    $lineValues = preg_split('/\s+/', trim($line));
    // 把当前行的数值合并到总数组
    $temperatureValues = array_merge($temperatureValues, $lineValues);
}

// 转成数值类型
$temperatureValues = array_map('floatval', $temperatureValues);

var_dump($temperatureValues);

为什么你的原有代码没生效?

你之前的代码用str_split把整个文件拆成单个字符,再按固定107个字符合并成“行”,这种方式有两个问题:

  • 固定长度拆分非常不灵活,一旦文件每行长度变化就会出错;
  • 合并成整行字符串后,没有处理行内的空格分隔,所以没法得到单个数值元素。

用上面的两种方法,不管是一次性拆分还是逐行处理,都能精准提取所有独立的温度数值,后续计算平均值、生成柱状图就没问题啦。

内容的提问来源于stack exchange,提问作者Marius Nestabdau Narbutaitis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:47:46