我试图从一个文本文件中读取数据,并将其分配给数组。我如何一次只读3行,然后将第一行赋给数组$a,第二行赋给数组$b,第三行赋给数组$c?然后准确地再读3行,等等。
发布于 2012-01-05 22:06:58
$lines = file('some_file.txt');
$numLines = count($lines);
for ($i = 0; $i < $numLines; $i += 3) {
$a[] = $lines[$i];
$b[] = $lines[$i + 1];
$c[] = $lines[$i + 2];
}请注意,您还需要执行一些越界索引错误检查。我把它作为行动的练习。
发布于 2012-01-05 22:06:28
您可以使用fseek或带有maxlen参数的file_get_contents。但是要准确地读3行,我实际上不知道,除非你知道这些行有多长。
函数file将所有行读入数组。
编辑二:可以逐个字节地读取文件(尽管从我的角度来看,这是一个坏主意),在遇到每个\n或PHP_EOL后停止,并使用计数器或其他工具来管理它的使用方式。
编辑一个:
我的想法是:你可以创建一个自定义的流包装器,然后用它来读取3行到3行的内容。这是一个伟大的文件工具,检查http://www.php.net/manual/en/class.streamwrapper.php,并通过上下文或变量或任何其他方式控制它。
我猜你仍然需要找到一个算法来解决这个问题。我还没试过,但如果你处理好了请告诉我们。
发布于 2012-01-05 22:07:28
https://stackoverflow.com/questions/8743775
复制相似问题