2 つの列を持つ 260k 行の csv ファイルがあります。fgetcsv を使用して csv ファイルを読み込んでおり、ファイル内のすべての行を読み取る while ループがあります。ループでは、2 番目の列の値を配列に追加しようとしています。
配列に追加する行があると、PHP がフリーズして終了しません。私はデバッグを行い、値が配列に追加されているので、配列への追加とwhileループが機能することはわかっていますが、フリーズする理由はわかりません。
行を削除すると、while ループが 260k 行を通過して完了し、残りのファイルが処理されます。
これが私のコードです:
$amountRecords = 0;
$totalValue = 0;
$valueArray = array();
// reads in csv file
$handle = fopen('Task1-DataForMeanMedianMode.csv', 'r');
// to skip the header names/values
fgetcsv($handle);
// creates array containing variables from csv file
while(($row = fgetcsv($handle, "\r")) != FALSE)
{
/*
echo "ROW CONTAINS: ";
var_dump($row[1]);
echo "<br />";
*/
$valueArray[] = $row[1];
/*
echo "VALUEARRAY NOW CONTAINS: ";
var_dump($valueArray);
echo "<br />";
*/
$totalValue = $totalValue + $row[1];
$amountRecords++;
}
csv ファイルのサンプル:
ID,Value
1,243.00
2,243.00
3,243.00
4,243.00
5,123.11
6,243.00
7,180.00
8,55.00
9,243.00
10,55.00