转动一个| 将文件分离到 PHP 中的关联数组中

乌鸦美国海军陆战队

我正在努力尝试变成一个基本的 | 分离的文件,看起来像这样:

10.10.0.139|1623778800.0631|20210615 13:40:00|783||test.php|||用户登录结束|0.2406407635352 10.10.0.139|162061072|162061072|162061072|162061072用户登录结束|0.34064078330994 10.10.0.139|1623778800.0631|20210615 13:40:00|783||test.php||index.php|用户调用结束|0.506192438888

变成看起来像这样的东西:

[0] => Array
(
  [test.php|||end of user login] => 0.2406407635352
)
[1] => Array
(
  [test.php|||end of user login] => 0.34064078330994
)
[2] => Array
(
  [test.php||index.php|end of User call] => 0.50612878799438
)

这样我就可以遍历文件并获取键、计数、最小值、最大值和平均值。到目前为止,我的代码如下所示:

<?php

   $arrayContent = file("test.txt");
   $returnArray = array();
   $i = 0;

   foreach($arrayContent as $row){
     // echo $row;
     $returnArray[$i++] = explode("|", $row);
   }
   $contentArray = array();

   foreach($returnArray as $row) {
     $key = $row[5] . '|' . $row[6] . '|' . $row[7] . '|' . $row[8];
     $time = $row[9];
     $contentArray[$key] = $time;
   }
   
    ksort($contentArray);

?>

当我 print_r($contentArray) 我会得到这个:

Array
(
    [soap.php|||end of User call] => 0.50612878799438
    [soap.php|||end of user login] => 0.34064078330994

)

它似乎采用用户登录结束的最后一个值并且没有三行 - [soap.php|||用户登录结束] 2行,[soap.php|||用户调用结束] 1行

我的最终目标是将输出放入一个文本文件中,如下所示:

Key Count Min Max Avg 
[soap.php|||end of user login], 2, 0.2406407635352, 0.34064078330994, 0.29064077342257
[soap.php|||end of User call], 1, 0.50612878799438, 0.50612878799438, 0.50612878799438
罗布·鲁切特

您的代码将键的值设置为在文件中找到的上次匹配时间值,看起来您希望为每个键设置一个值数组。你也太努力了 IMO,让我们fgetcsv为你工作。

<?php

$handle = fopen('test.csv', 'r');

$contentArray = [];
while (($row = fgetcsv($handle, 0, '|')) !== false)
{
    $key = $row[5] . '|' . $row[6] . '|' . $row[7] . '|' . $row[8];

    if(!array_key_exists($key, $contentArray))
    {
        $contentArray[$key] = [];
    }

    $time = $row[9];
    $contentArray[$key][] = $time;
}

fclose($handle);

ksort($contentArray);

foreach($contentArray as $key=>$data)
{
    echo '['.$key.'], '.implode($data, ', ').PHP_EOL;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过继续增加键将关联添加到另一个关联数组中?

PHP将两个关联数组合并为一个数组

将特定的MySQL列从行获取分离到php中的另一个数组中

如何在php中创建一个空白的关联数组

在php中从关联数组索引明智地分离数据

PHP-从关联数组中删除并返回一个元素

将变量名和内容都保存到php中的关联数组中

将列表更改为PHP中的关联数组列表

将每个值的位置移至关联数组中的下一个索引

将两个关联数组转换为一个多维数组PHP

关联数组php中的Findind数组

从另一个数组返回PHP中的关联数组的函数

将一个关联数组转换为一个关联数组,该关联数组具有一个键,该键中的另一个关联数组作为键在php中的值

将关联数组添加到PHP中的另一个关联数组

如何在PHP中从两个相关的关联数组中打印元素和值

如何在PHP中以随机顺序将数组插入关联数组

从PHP中的2D关联数组获取第一个和最终值

创建一个具有多个值的关联数组到php中的一个键

将PHP中的对象数组转换为关联数组以填充HTML选择的更好方法

在PHP中合并两个关联数组的问题

PHP,从多维数组中的多个关联数组中回显一个特定值

将数组分解为已在php中爆炸的关联数组

拆分多维数组并将其分组为与php中相同文件的关联数组

如何在PHP中检测关联数组迭代中的最后一个元素

PHP中关联数组的一些查询

PHP 将现有关联数组中的键值添加到现有关联数组

有没有办法在不丢失 PHP 中的键的情况下将关联数组的数组分解为一个数组?

php中的关联数组

PHP:根据键将关联数组的值写入 CSV 文件的列中