PHP 根据值列计算文本文件的行数

2024-04-24

继续我之前的question https://stackoverflow.com/questions/52397274/php-count-text-file-rows-based-on-date-and-time.

我有名为拒绝的文本日志文件。你可以看到here https://www.dropbox.com/s/ptp9jas8s1he9hh/Reject.txt?dl=0

如您所见,选项卡上有 4 个步骤:

1. Battery level
2. Piezo sound level
3. Left D3  (Ch 3) light intensity
4. Right D2  (Ch 1) light intensity

现在我想计算有条件的每一行:

Which column(Steps) value is filled then count it.
Example: on row 1, We can see the value 0 (any value) is on step Piezo sound level. Then count it.

所以最后我可以知道有多少数量Reject Process。

Battery level = x quantity
Piezo sound level = x quantity
Left D3  (Ch 3) light intensity = x quantity
Right D2  (Ch 1) light intensity = x quantity

PHP 代码:

$fromDateTime = new DateTime('Wed, Sep 19  2018 08:00:00');
$toDateTime = new DateTime('Wed, Sep 19  2018 19:59:00');
$file = file_get_contents('reject.txt');
$lines = explode("\n",$file);

// counter
$rowsintimespan = 0;

// Do Line-By-Line starting by Line 16 (Array Index 15)
for($i = 15; $i < count($lines); $i++) {
// if the file is "Tue, Sep 18<tab>2018<tab>23:59:53<tab>"
$dateobj = DateTime::createFromFormat("???,?M?d??Y?H:i:s+", $lines[$i]);

// check if date is in your Timespan
if($dateobj < $toDateTime && $dateobj > $fromDateTime) {
        $rowsintimespan++; // count if in timespan
    }
}

// Debug-Output
echo $rowsintimespan;

UPDATE

我需要读取最后一列值,示例:如果行的值位于左侧 D3 列,则对其进行计数。如果行的值位于 Piezo 列上,则对其进行计数。


如果您可以将列写为键,那么这应该按照您的描述工作:

$fromDateTime = new DateTime('Wed, Sep 19  2018 08:00:00');
$toDateTime = new DateTime('Wed, Sep 19  2018 19:59:00');
$file = file_get_contents('Reject.txt');
$lines = explode("\n", $file);

// counter
$rowsintimespan = 0;
// keys should correspond to columns
$keys = [
    'date',
    'time',
    'battery',
    'piezo',
    'leftD3',
    'rightD2'
];

$values = array_fill(0, count($keys), 0);
$values = array_combine($keys, $values);

// Do Line-By-Line starting by Line 16 (Array Index 15)
for ($i = 11; $i < count($lines); $i++) {
    // if the file is "Tue, Sep 18<tab>2018<tab>23:59:53<tab>"
    $dateobj = DateTime::createFromFormat("???,?M?d??Y?H:i:s+", $lines[$i]);

    // check if date is in your Timespan
    if ($dateobj < $toDateTime && $dateobj > $fromDateTime) {
        $rowsintimespan++; // count if in timespan

        // get line elements
        $lineContent = explode("\t", $lines[$i]);

        // loop through line elements and count them
        $x = 0;
        for ($j = 0; $j < count($keys); $j++) {
            if (!isset($lineContent[$j])) {
                continue;
            }

            // remember position of last not empty column
            if (trim($lineContent[$j]) != '') {
                $x = $j;
            }
        }

        if ($x > 0) {
            $values[$keys[$x]]++;
        }
    }
}

// Debug-Output
echo $rowsintimespan;

// Output every column
echo '<pre>';
print_r($values);

这将打印出:

Array
(
    [date] => 0
    [time] => 0
    [battery] => 4
    [piezo] => 31
    [leftD3] => 17
    [rightD2] => 1
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 根据值列计算文本文件的行数 的相关文章

  • 如何在 Laravel 模型中将 String 转换为 int

    这是我的解决方案 我在模型类中写了这个 评分是字符串类型 code int ratings 但我需要在从数据库检索 ratings 时更改它 我该怎么做 我们有一个模型的属性称为cast您可以在其中指定列名称 如下所示 The attrib
  • 我应该存储密码的哈希值吗?

    用户系统和密码 我正在查看 MD5 内容 我想知道密码的正常 良好做法是什么 现在 我认为人们对密码进行超级加密并存储哈希值 如果是这样 密码检查如何工作 我只是让输入的密码再次经过加密过程 然后用存储的哈希值检查哈希值 对吗 这个问题可能
  • 用于解析差异的 PHP 类

    我正在编写一个 PHP 脚本 需要解释 Git 创建的 Diff 文件 如果我想解析 Diff 文件并基本上以完全不同的格式打印它 我应该如何进行 我遇到过Text DiffPEAR 库 但该库仅创建 Diff 本身 或者更确切地说 它只需
  • 在 PHP 中使用“func_get_arg”的好例子是什么?

    我刚刚发现有一个函数叫做func get arg在 PHP 中 开发人员可以使用不同的方式获取参数 它似乎非常有用 因为参数的数量现在可以是任意的 但我想不出任何使用它的好例子 有哪些使用该函数来充分利用其多态特性的例子 我通常使用func
  • PHP 中的数组按值排序并维护索引关联

    我有一个数组 array array john gt 2 adam gt 3 ben gt 10 tim gt 1 我已经尝试了 PHP 的各种函数来实现这个数组结构 array array tim gt 1 john gt 2 adam
  • WSDL PHP 函数返回 null,而其他函数返回预期结果

    Summary 在这里 我将列出我解决此问题所采取的所有步骤 以供其他人参考 1 PHP 很愚蠢地 监听 函数的输入消息来定义它应该使用哪个函数 因此 为每个函数提供不同的输入消息 即使它使用相同的类型或元素 您可能认为这对您来说是一项艰巨
  • 如何使用 JSON 以外的方法将数组转换为字符串?

    除了使用 JSON 之外 PHP 中还有什么函数可以将数组转换为字符串 我知道有一个函数可以像 JSON 一样直接执行 我只是不记得了 serialize http php net manual function serialize php
  • 逗号分隔的字符串到数组

    我正在寻找采用单个变量的最简单方法 例如 variable left middle right 并将其写入array 在逗号处分开 array explode variable
  • WooCommerce 从前端(而不是管理员)隐藏订单项元

    我有一些我不希望客户看到的订单项元详细信息 在帐户信息下的查看订单页面上 我找到了一个过滤器 可以从管理员 我仍然希望看到它 中删除这些数据 但找不到类似的过滤器来从前端 应该隐藏它 中删除它 这是将从后端管理中删除它的代码 对我来说毫无用
  • 通过 Amazon SQS 将压缩文本从 PHP 发送到 NodeJS

    我似乎一直坚持通过 Amazon SQS 将压缩消息从 PHP 发送到 NodeJS 在 PHP 方面我有 SQS gt sendMessage Array QueueUrl gt queueUrl MessageBody gt artic
  • 如何获取laravel 5.4中的所有头信息

    当我打印时 echo pre print r getallheaders 它给出输出 Host gt abc com User Agent gt Mozilla 5 0 Macintosh Intel Mac OS X 10 12 rv 5
  • 节省页面加载时间的提示[重复]

    这个问题在这里已经有答案了 我的问题 削减那些不必要的 kb 并使页面加载速度更快的最佳方法是什么 全部是什么优化实践 编码实践 在js php中 如果执行可以使您的页面更轻 为什么我问这个 我读了这篇关于 jquery js 与 jque
  • Composer 自动加载器未加载 GuzzleHttp\ClientInterface

    我正在尝试使用Guzzle http guzzle readthedocs org en latest 但我得到以下内容致命错误 致命错误 找不到类 GuzzleHttp ClientInterface var www myapp vend
  • Notepad++ 编辑 PHP 的语法突出显示吗?

    我想在 Notepad 中编辑 PHP 的语法突出显示 变量开头为 与仅开头的变量的颜色不同 让运营商像 颜色与操作员不同 是否可以将突出显示更改为如此深入 如何 这个有可能 在 Notepad 中 通过单击定义新语言View gt 用户定
  • 回显并打印声明

    假设有以下代码
  • PHP - 调整 PNG 图像大小时出现内存错误

    我有一个脚本可以根据上传的图像创建缩略图 它对 jpg 工作正常 但给我一个错误 致命错误 允许的内存大小 67108864 字节已耗尽 尝试分配 26250000 字节 当我上传 png 图像时 脚本是 create thumbnail
  • 将 Unicode 字符转换为等效的 ASCII 字符

    为了索引和搜索的目的 我需要 展平 一些 Unicode 字符串 例如 我需要转换G the 转换为 ASCII 最后两个字符在 ASCII 中没有紧密的表示 因此可以完全丢弃它们 所以我的期望是 echo iconv UTF 8 ASCI
  • PHP 中是否有像 C++ 一样的纯虚函数

    我本以为很多人会想知道这是否可能 但我找不到任何重复的问题 请纠正我 我只是想知道PHP是否提供纯虚函数 我想要以下 class Parent no implementation given public function foo noth
  • 当我尝试计算 mysqli 结果时,为什么会收到警告?

    下面的代码会导致此警告 警告 count 参数必须是数组或实现 Countable 的对象 为什么要这样做 如何防止出现警告 if isset GET edit sonum GET edit update true result mysql
  • laravel 模型保存后、保存前等回调

    Laravel 中是否有回调 例如 afterSave beforeSave etc 我进行了搜索 但一无所获 如果没有这样的事情 实施它的最佳方法是什么 Thanks 实现保存前后回调以扩展的最佳方法save 功能 这是一个简单的例子 c

随机推荐

  • ggplot 中十分位数的低、中高颜色

    我想使用 ggplot 绘制多边形类型的空间图 其中绘制多边形 多边形的颜色由其权重决定 示例数据框看起来像 这是数据文件完整的数据文件 https dl dropboxusercontent com u 55346033 sampleDa
  • Gmail 邮件可以通过 API 存档吗?

    似乎无法使用 API 来存档邮件 在 Web 界面中归档涉及moving 而不是labeling发送至 所有邮件 的消息 API 不仅没有列出 所有邮件 标签 而且move也失踪了 只有modify这仅允许在消息中添加或删除标签 这很奇怪
  • 保护 Azure 云服务配置中的敏感信息

    我们正在使用云服务配置 https learn microsoft com en us previous versions azure reference jj156212 v 3Dazure 100 存储应用程序设置 但我们想保护一些应用
  • 电子邮件安全:TLS 和 S/MIME

    我的理解是 TLS 是一种加密技术 允许两个 STMP 服务器安全地相互通信 如果使用 HTTPS 连接到 STMP 服务器 与使用 S MIME 相同吗 不会 TLS 会对通信通道进行加密 S MIME 对消息进行加密 也就是说 这就是
  • System.Web.Security.FormsAuthentication.Encrypt 返回 null

    我正在尝试加密一些 userData 以使用 Forms 身份验证创建我自己的自定义 IPrincipal 和 IIdentity 对象 我已将代表我登录用户的对象序列化为 Json 并创建了我的 FormsAuthentication 票
  • C++:用 istream 包装 vector

    我想包一个vector
  • Eclipse 中的默认导入

    有没有办法自定义 Eclipse 中的默认导入 例如 如果我默认打开一个新的 JUnit 测试类 我会得到以下导入 import static org junit Assert import org junit Test 我想得到什么 im
  • 无法创建“匿名类型”类型的常量值。此上下文中仅支持基本类型或枚举类型

    我对linq和实体框架 我正在尝试解决以下问题为何不起作用的问题 产生的错误是 无法创建 匿名类型 类型的常量值 在此上下文中仅支持原始类型或枚举类型 我已经尝试了很多不同的方法 但仍然收到与原始类型相关的错误 如果有人能看一下下面的代码并
  • 如何让 Maven 发出有关传递依赖版本不匹配的警告?

    在下面的 Maven 依赖项示例中 slf4j 依赖项想要引入 log4j 1 2 17 log4j 显式依赖项想要引入 1 2 15 Maven 将 log4j 解析为版本 1 2 15 但是 Maven 没有打印出 sl4j 需要更高版
  • 通过动画将视图的可见性从消失变为可见

    我有一个观点是invisible默认情况下 只是第一次 现在我需要将可见性切换为VISIBLE有了这个animation if myView getVisibility View INVISIBLE myView setVisibility
  • Http 请求的加载指示器

    我的问题的根源是在 http 请求上显示加载指示器 我想在服务级别上执行此操作 而不必为每个组件编写代码 我所做的是实现一个 http 包装器 它基本上执行以下操作 getMyHttpObservable setLoadingIndicat
  • 具有 Azure Key Vault 的本地 ASP.NET Framework Web 应用程序

    我们正在尝试保护内部 ASP NET Framework Web 应用程序中的应用程序机密 向我提供的最初计划是使用 Azure Key Vault 我开始使用我的 Visual Studio Enterprise 订阅进行开发工作 并且在
  • Laravel,获取当前登录的用户

    我想在应用程序中显示当前登录用户的列表 我想使用 Laravel Auth 方法 我正在查看 API 但找不到类似的东西 我可能需要循环访问会话存储 然后将其与用户 ID 匹配 我对吗 更新 忘了提及 我将会话存储在数据库中 当前登录 是普
  • 为字符串数组分配内存

    我想使用两个函数填充一个字符串数组 第一个 如果我有n个字符串要分配 将分配n个内存空间 第二个将为每个读取的字符串分配内存 这是第一个函数 char allocate int n char t t char malloc n sizeof
  • 数据透视表:检测数据透视字段何时折叠

    对于数据透视表中显示的数据 我选择对数据表的某些部分应用条件格式以突出显示某些范围内的值 弄清楚如何以不同于小计数据的方式突出显示第二级行数据很有趣 但我能够解决它 我的 VBA 使用以下命令触发Worksheet PivotTableUp
  • Google / OAuth 2 - 自动登录

    我正在尝试结合一些 Google API 来使用 OAuth 2 0 虽然授权过程非常简单 但在初始授权完成后 我遇到了自动授权的问题 So 1 Authorization is done for the first time user g
  • Tomcat 是否立即支持 JAX-RS(它是否支持 JAX-RS)?

    从教材 RESTful Java with JAX RS 中我们可以读到 如果我们的应用程序服务器是 JAX RS 感知的 或者换句话说 与 JAX RS 紧密集成 则声明我们的ShoppingApplication作为 servlet 的
  • iOS/WKWebView 上 SVG 的随机故障渲染

    在我们的 iOS 应用程序中显示 SVG 图标时 我们遇到了奇怪的间歇性 非常偶然 渲染故障 基于WKWebView 当它确实发生时 它似乎可能与 CSS 相关 因为如果我在调试页面时在 Safari 中更改一些随机 甚至完全不相关 的 C
  • 电脑重启后Eclipse无法启动

    我的 Eclipse 没有启动 因为我的计算机有点冻结 所以我不得不强制重新启动它 当我不得不重新启动时 Eclipse 已打开 我相信这很可能是原因 我不知道如何解决这个问题 每当我尝试打开它时 它都会告诉我检查工作区中的 log 文件
  • PHP 根据值列计算文本文件的行数

    继续我之前的question https stackoverflow com questions 52397274 php count text file rows based on date and time 我有名为拒绝的文本日志文件