PHP如何在这种情况下优化写入文件

时间:2013-05-31 21:09:50

标签: php mysql csv

为了更好地向您解释我的情况,我将描述它并提供相应的伪代码(某种)。我处于两难境地,需要一些帮助。

所以我有这个连续和频繁调用的功能。在函数中,我有一个 for 循环,它根据提供的数据执行可变次数。在 for 循环中,有一个数组可以填充所有这些数据。仍在函数中,当 for 循环结束时,数组将被写入CSV文件。然后执行停止。但是正如我所提到的那样,函数经常被调用一个调用,这导致重复的步骤在循环中填充数组然后写入文件。伪代码更好地说明了这种情况(不是我的实际代码,只是模型):

-call function stuff n times
               //Paragraph2 solution? -- global array declaration here ?

  function stuff
  {

    for loop(conditions)
    {
     array <= data
    }

    array => file   // Paragraph2 solution? -- Global array <= loop arrays 
 }

         // Paragraph2 solution? -- Global array => write to file

这很好用。问题在于写入文件的速度。我认为它因为所有小数组不断被写入文件而受损。我想在 for 循环中创建所有这些数组,将它们的数据写入循环外的全局数组中,这样我就可以将这一个数组与所有数据一起取出并插入CSV文件中,所以我只有一个事务到文件而不是我之前的无数交易。那么,这是我认为可能的,是正确的,还是有更好的方法呢?你可以在答案中提供可用的代码吗?谢谢。

1 个答案:

答案 0 :(得分:0)

这是在函数

中使用全局数组的方法
$stuff = array();

function add_stuff($new_stuff)
{
    global $stuff;

    $stuff[] = $new_stuff;
}

add_stuff("hello");
add_stuff("world");

print_r($stuff);

输出应为:

Array
(
  [0] => hello
  [1] => world
)