繁体   English   中英

在很大的数组上执行PHP array_filter或从文件加载较少数据的最快方法?

[英]Quickest way to do PHP array_filter on very big array or load less data from a file?

问题

我有一个将近2 Mb的txt文件。 它包含带有时间,日期,名称和消息的行。 我想在每一行上做一个正则表达式,所以我首先将文件读入数组。

$array1 = file('<file_name>');

在文件的每一行之间是一条我想跳过的白线。 在stackoverflow上,我发现以下代码和平似乎是可以的。

array_values( array_filter($array1, 'trim'));

我的问题是,此过程需要很长时间。

问题

  1. 在制作数组之前,有没有一种方法可以在读取文件时跳过白线,因此我以数组开头的键就更少了?
  2. 如果我必须使用array_filter函数。 Wich方法更快,最适合内存使用吗?

$array2 = array_values( array_filter($array1));

要么

$array2 = array_values( array_filter($array1));
unset($array1);

如果要优化内存,则必须读取每一行并进行处理。

  1. 打开文件
  2. 启动循环
  3. 读行
  4. 工艺线
  5. 保存已处理的数据
  6. 结束循环

使用fopen,fread,fclose php函数。 您可以在这里找到一些信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM