【发布时间】:2019-03-25 22:10:23
【问题描述】:
我正在尝试编写一个 PHP 脚本,该脚本将按一列或多列对 CSV 文件进行排序并将结果输出到另一个文件。
有没有办法在不完全加载到内存的情况下对 CSV 文件进行排序?
【问题讨论】:
-
不先读取数据怎么排序?
-
我指的是逐行读取。所以你会读取数据,但不是一次读取所有数据。
我正在尝试编写一个 PHP 脚本,该脚本将按一列或多列对 CSV 文件进行排序并将结果输出到另一个文件。
有没有办法在不完全加载到内存的情况下对 CSV 文件进行排序?
【问题讨论】:
不,没有合理的方法。您需要将内存中的数据进行比较并写入文件。
如果您知道每行的长度,您可以尝试冒泡排序。读取新“有序”文件的一行原始行和最后一行。比较它们并附加或添加到新文件中。在此迭代之后,再次使用新文件作为源,直到它被排序。
您应该使用像 MySQL 这样的数据库。
【讨论】: