重新排列文件中的数据

时间:2011-07-17 15:05:52

标签: php algorithm file

有一个数字数组,分为包含相同数量元素的分区(作为array_chunk()的输出)。它们被写入单独的文件,文件1.txt包含第一个块,2.txt - 第二个,依此类推。现在我希望这些文件包含初始数组的不同数量的元素。当然,我可以将它们读入一个数组并再次拆分,但它需要相当大的内存。你能帮我找一个更有效的解决方案吗? (文件的数量和最后的大小是分开存储的)我没有其他想法...

1 个答案:

答案 0 :(得分:0)

你知道不同的号码是什么吗?如果这样做,那么您可以轻松读取数据,然后每当您填充块写入数据时。在伪代码中:

for each original file:
    for each record:
        add record to buffer
        if buffer is desired size:
            write new file
            clear buffer
write new file

显然,您需要将新文件与旧文件分开。然后,一旦你重写了数据,你就可以以某种方式交换它们。 (我个人建议有两个目录,然后在完成后重命名目录。)

如果您不知道块的大小应该是多少(例如,您需要特定数量的文件),那么首先要做任何需要的工作来解决这个问题,然后继续使用原始解决方案。