1

私の状況をよりよく説明するために、それを説明し、対応する疑似コード(一種)を提供します。私はジレンマに陥っていて、助けが必要です。

したがって、連続して頻繁に呼び出されるこの関数があります。関数には、提供されたデータに基づいて可変回数実行する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ループ内のこれらすべての配列を作成して、データをループ外のグローバル配列に書き込み、この 1 つの配列をすべてのデータとともに取得して CSV ファイルに挿入できるようにしたいので、トランザクションは 1 つだけになります。私が以前に持っていた無数のトランザクションの代わりにファイルに。それで、これは私が考えた可能性ですか、それは正しいですか、それともこれを行うためのより良い方法はありますか? そして、あなたの答えで使用可能なコードを提供してください。ありがとうございました。

4

1 に答える 1

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
)
于 2013-05-31T21:14:18.703 に答える