Php 重新排列文件中的数据

Php 重新排列文件中的数据,php,algorithm,file,Php,Algorithm,File,有一个数字数组,被划分为包含相同数量元素的分区(作为array_chunk()的输出)。它们被写入单独的文件中,文件1.txt包含第一个块,2.txt包含第二个块,依此类推。现在我希望这些文件包含初始数组中不同数量的元素。当然,我可以将它们读入一个数组并再次拆分,但这需要相当大的内存。你能帮我找到一个更有效的解决方案吗?(文件的数量和最后一个文件的大小是分开存储的)我没有其他想法…你知道不同的数字是什么吗?如果您这样做了,那么您就可以轻松地读入数据,然后在填充数据块时将数据写出。在伪代码中: f

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

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

for each original file:
    for each record:
        add record to buffer
        if buffer is desired size:
            write new file
            clear buffer
write new file
显然,您需要将新文件与旧文件分开。然后,一旦您重写了数据,您就可以以某种方式交换它们。(我个人建议有两个目录,然后在完成后重命名目录。)


如果您不知道块的大小(例如,您需要特定数量的文件),请先做任何需要的工作,然后继续使用原始解决方案。

您能更好地解释一下吗?您有几个大小相同的文件,最后一个文件可能更小,您想通过将元素从一个文件移动到另一个文件来调整文件的大小吗?是的,它们的大小将保持相同,并且记录的“全局”顺序也相同。谢谢。我知道尺码(忘了提了)。嗯,也许你的版本不是最有效的,因为有些文件真的不需要完全重写(只需要重命名和修改),但是计算它们的数字然后使用你的代码是很容易的。